我正在使用 OpenCV 2.4.7 在 VS2012 上编译一个简单的项目。
所以当我这样做的时候:
cv::Mat img = cv::imread("C:\lena.jpg",1);
然后我寻找以下错误的解决方案:
OpenCV Error: Assertion Failed (size.width>0 && size.height>0) in unknown function
所以,我把这个:
IplImage* img1 = cvLoadImage("C:\lena.jpg", 1);
Mat img(img1);
而且效果很好。这只是一种解决方案吗?
PS: 我在 Ubuntu 上遇到了同样的问题,我尝试以不同的方式更改路径。
最佳答案
这是因为您的转义序列。看下面的路径:
C:\\Users\\name\\Pictures\\Dell WebCam Central\\img.jpg
这将正常编译
C://Users//name//Pictures//Dell WebCam Central//img.jpg
但是,如您所用,如果转义顺序不正确,则断言将失败。
参见 escape sequences获取更多信息。
关于c++ - OpenCV imread 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414026/