我在 C++ 代码中有循环来打开和处理一组图像。其中之一是
http://i.stack.imgur.com/rUJnp.gif
imread 无法打开这个特定的代码。 imread().dataNULL

FWIW,我在使用 CentOS 并使用最新的 opencv 2.4.8。有没有什么办法解决这一问题?如果不是,用另一个 C++ 图像库打开它并将其转换为 cv::Mat 的最简单方法是什么?

最佳答案

来自关于 imreadOpenCV 文档

函数 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/

10-10 21:36