2017-04-20 130 views
0

我想在OpenCV中使用imread()读取8BPP PNG图像并将其复制到更大的矩阵中。这是代码:OpenCV imread 8BPP PNG图像错误

Mat subimage = imread((directory + file).toStdString(), IMREAD_COLOR); 
subimage.copyTo(whole(Rect(rect.left(), rect.top(), 
             rect.width(), rect.height()))); 

我已经试过其他标志一样IMREAD_ANYCOLOR,IMREAD_ANYDEPTH,IMREAD_GRAYSCALE和IMREAD_UNCHANGED。他们似乎没有任何工作(子图像仍然是空的)。

我收到如下因素的错误:

OpenCV Error: Assertion failed (!fixedSize()) in cv::_OutputArray::release, file ..\..\..\sources\modules\core\src\matrix.cpp, line 1619

+0

'directory'和'file'之间没有分隔符?没有检查图像是否加载? –

+0

我可以添加检查..目前,我有一个打印语句,打印出subimage的行数和列数。矩形的尺寸是正确的。此外,目录变量以分隔符结束..我将分隔符添加到代码的单独部分中。我也打印出来,它是正确的。 – user2522981

回答

0

我终于想通了错误。但是,它与imread无关。我正在下载图像,并试图在下载完成之前阅读它们。