图像正常时,使用OpenCV的imread失败
当我想使用OpenCV函数图像正常时,使用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对该图像进行解码?比如添加新的解码库。顺便说一
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年以来,这不再是一种选择。