我在 C++ 代码中有循环来打开和处理一组图像。其中之一是
http://i.stack.imgur.com/rUJnp.gifimread
无法打开这个特定的代码。 imread().data
是 NULL
。
FWIW,我在使用 CentOS
并使用最新的 opencv 2.4.8。有没有什么办法解决这一问题?如果不是,用另一个 C++ 图像库打开它并将其转换为 cv::Mat
的最简单方法是什么?
最佳答案
来自关于 imread
的 OpenCV 文档
函数 imread
从指定文件加载图像并返回它。如果无法读取图像(由于文件丢失、权限不当、格式不受支持或无效),该函数将返回一个空矩阵 ( Mat::data==NULL
)。目前,支持以下文件格式:
Windows bitmaps - *.bmp, *.dib (always supported)
JPEG files - *.jpeg, *.jpg, *.jpe (see the Notes section)
JPEG 2000 files - *.jp2 (see the Notes section)
Portable Network Graphics - *.png (see the Notes section)
Portable image format - *.pbm, *.pgm, *.ppm (always supported)
Sun rasters - *.sr, *.ras (always supported)
TIFF files - *.tiff, *.tif (see the Notes section)
所以 OpenCV 不支持
.gif
格式,因此 imread
返回 NULL
。关于c++ - OpenCV imread 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23177845/