OpenCV 读取问题

Posted

技术标签:

【中文标题】OpenCV 读取问题【英文标题】:OpenCV imread issue 【发布时间】:2013-12-06 01:00:53 【问题描述】:

我正在使用 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 上遇到了同样的问题,我尝试以不同的方式更改路径。

【问题讨论】:

哪个函数给你例外,是imread(…)?可能是错误出在其他功能中吗?您是否尝试将"C:/lena.jpg" 作为imread 的路径? 错误在 imread 中,因为我用 IpL 方式替换了它,正如我提到的,它运行良好......是的,我尝试使用 C:/lena.jpg,但没有工作:-\跨度> 【参考方案1】:

这是因为您的转义序列。看下面的路径:

C:\\Users\\name\\Pictures\\Dell WebCam Central\\img.jpg

这将正常编译

C://Users//name//Pictures//Dell WebCam Central//img.jpg

但是,如果转义序列不正确,正如您所使用的,那么断言将失败。

更多信息请参见escape sequences。

【讨论】:

以上是关于OpenCV 读取问题的主要内容,如果未能解决你的问题,请参考以下文章

opencv读取ENVI标准格式

opencv 怎样从MP4格式视频中读取一帧

OpenCV 读取问题

关于opencv读取图片、视频总是窗口一闪不出图、视频的问题

opencv如何批量读取文件夹中图片

OpenCV imread读取图片失败