我正在尝试将某些行从 src
图像复制到名为 gaps 的新图像。间隙图像将仅包含几行。然而,程序在带有 copyTo
的行崩溃。 Mat src
图像是正确的,它包含我的图像,因为我可以通过 imshow()
查看它。
Mat gaps;
int gap = 6;
for (int r = 0; r < src.rows; r++)
{
if ( r % gap == 0 )
src.row(r).copyTo(gaps.row(r));
}
imshow("gaps", gaps);
waitKey(0);
我在 Windows XP 上使用 OpenCV、Visual Studio 2010 C++。
我试着添加这个:
gaps.create(CV_8UC3, 2056,2056);
指定深度和尺寸,但它仍然崩溃。
最佳答案
试试这个:
// if you want your background to be black --> Scalar(0,0,0)
Mat gaps = Mat(src.size(), src.type(), Scalar(0,0,0));
这就是你会得到的,我不知道这是否是你所期望/想要的。
代码
// set your input image
Mat src = imread("{path to input image}");
// your code with the change I proposed
Mat gaps = Mat(src.size(), src.type(), Scalar(0,0,0));
int gap = 6;
for (int r = 0; r < src.rows; r++) {
if ( r % gap == 0 )
src.row(r).copyTo(gaps.row(r));
}
imshow("gaps", gaps);
// create the result image
Mat result = Mat(Size(src.cols * 2, src.rows), src.type(), Scalar(0,0,0));
src.copyTo(result(Rect(0,0,src.cols,src.rows)));
gaps.copyTo(result(Rect(src.cols,0,src.cols,src.rows)));
imshow("result", result);
waitKey();
关于c++ - 将行复制到矩阵导致 OpenCV 崩溃 - Visual Studio 2010 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38018580/