Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图像正常时,使用OpenCV的imread失败_Opencv_Imread - Fatal编程技术网

图像正常时,使用OpenCV的imread失败

图像正常时,使用OpenCV的imread失败,opencv,imread,Opencv,Imread,当我想使用OpenCV函数imread()读取图像时,遇到了一个问题。 图像正常,我可以在图像显示软件中显示。 但是当我使用imdecode()获取图像数据时,数据返回NULL。 我会上传图片和代码,希望有人能帮我 Mat img = imread(image_name); if(!img.data) return -1; 图片链接如下: 附:image\u name没问题。 我猜OpenCV无法解码此图像。那么,是否有任何方法可以使用OpenCV对该图像进行解码?比如添加新的解码库。顺便说一

当我想使用OpenCV函数
imread()
读取图像时,遇到了一个问题。 图像正常,我可以在图像显示软件中显示。 但是当我使用
imdecode()
获取图像数据时,数据返回NULL。 我会上传图片和代码,希望有人能帮我

Mat img = imread(image_name);
if(!img.data) return -1;
图片链接如下:

附:
image\u name
没问题。
我猜OpenCV无法解码此图像。那么,是否有任何方法可以使用OpenCV对该图像进行解码?比如添加新的解码库。顺便说一句,我可以使用其他图像库(如freeImage)读取此图像。

您的图像位于
.gif
中,目前OpenCV不支持此图像

注意:OpenCV支持图像格式Windows位图(bmp), 便携式图像格式(pbm、pgm、ppm)和太阳光栅(sr、ras)。具有 插件的帮助(如果您自己构建,则需要指定使用它们 库,但在我们默认提供的软件包中) 您还可以加载JPEG(JPEG,jpg,jpe)、JPEG2000等图像格式 (jp2-在CMake中代号为Jasper)、TIFF文件(TIFF、tif)和 便携式网络图形(png)。此外,OpenEXR也是一个 可能性

来源-点击

您可以使用类似的方式来执行转换


我可以使用
imread
加载您的图像。此外,您还可以查看。

在OpenCV中读取图像有两种方法,一种是使用
Mat
另一种是使用
IplImage
。我看你用了前一个。您还可以尝试使用第二个参数
imread

image = imread("image.jpg", CV_LOAD_IMAGE_COLOR);   // Read the file
否则请使用
IplImage

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include <opencv2/core/core.hpp>

IplImage* src = 0;

if( (src = cvLoadImage("filename.jpg",1)) == 0 )
{
    printf("Cannot load file image %s\n", filename);
}
#包括“opencv2/highgui/highgui.hpp”
#包括“opencv2/imgproc/imgproc_c.h”
#包括
IplImage*src=0;
如果((src=cvLoadImage(“filename.jpg”,1))==0)
{
printf(“无法加载文件图像%s\n”,文件名);
}
如果它们不起作用,请检查您是否安装了libjpeg、libtiff和其他用于在OpenCV中读取图像的依赖项


希望能有所帮助。

你也可以尝试使用图书馆的礼品2。它将gif图像转换为numpy图像,然后可由OpenCV加载:

import cv2, gif2numpy
np_images, extensions, image_specs = gif2numpy.convert("yourgifimage.gif")
cv2.imshow("np_image", np_images[0])
cv2.waitKey()

可以在此处找到该库:它不依赖于PIL或枕头来生成类似的图像IO。

图像的路径可能错误,即
图像\u名称
。图像\u名称没有问题,您可以在pc上进行测试。我想这是图像的问题,opencv无法解码此图像。那么我能做些什么使opencv能够解码这个图像呢?无法访问图像。。403错误。嗯,你能说出图像名称中的确切内容吗?你能从同一路径读取不同的图像(图像类型)吗?请不要建议这里的人使用不推荐使用的c-api。自2010年以来,这不再是一种选择。