1

我面临一个奇怪的问题,我无法使用cv::imread. 因此,以下结果导致 imageInput 具有空数据,行和列设置为 0。

cv::Mat imageInput =  cv::Mat();
imageInput = cv::imread("abc.jpg",cv::IMREAD_COLOR);

有趣的是,注释掉上面的代码后,下面的代码就可以读取iamge了:

//cv::Mat imageInput =  cv::Mat();
//imageInput = cv::imread("abc.jpg",cv::IMREAD_COLOR);
IplImage *rImg;
rImg = cvLoadImage("abc.jpg", CV_LOAD_IMAGE_COLOR);

rImg正如预期的那样,宽度为 3296,高度为 2256。
我不知道这怎么可能。请帮忙。在这两种情况下,构建似乎都很好。我尝试同时使用 opencv-2.4.5 和 opencv-2.4.6

4

1 回答 1

0

我现在已经能够弄清楚这个问题了。
问题是提到了发布构建静态库而不是调试构建静态库。
早些时候,对于 VC++ 项目,我在调试模式下包含了以下 lib 依赖项:opencv_core245.lib;opencv_highgui245.lib;opencv_imgproc245.lib;opencv_video245.lib

将其更改为 后opencv_core245d.lib;opencv_highgui245d.lib;opencv_imgproc245d.lib;opencv_video245d.lib,我可以使用 imread 读取图像而不会出现任何问题。

于 2013-08-13T05:39:11.263 回答