2017-10-11 1386 views
2

我目前使用的蟒蛇4.3.27,Python的3.6.2和OpenCV 3.3.0'libpng的错误:读取错误' 通过使用开放CV imread

当我尝试

img1 = cv2.imread('D:\Images\3D-Matplotlib.png') 
img2 = cv2.imread('D:\Images\mainsvmimage.png') 

我得到libpng error: Read Error弹出窗口显示,表明Python停止工作。我已经尝试用'\\'和'/'替换'\',但在这些情况下也出现了相同的错误。当我尝试读取一个JPG而不是一个PNG时,我没有看到错误。有人知道这里可能是什么问题吗?

在此先感谢!

编辑:

而且cv2.imwrite给出了一个错误:

libpng error: Write Error 
+0

图像是否与给定的路径存在?可能是你可以尝试os.listdir(“D:/ Images /”) – Mitiku

+0

是的,他们是。当我尝试os.listdir时,它们被返回... –

回答

0

尝试添加标志(灰度,...)由cv2.imreadhttps://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html

和要求使用r作为路径

img2 = cv2.imread(r"D:\Images\mainsvmimage.png",0) 

(如灰度0加载图像)

OpenCV Python not opening images with imread()

如果仍不能工作,也许与其它图像测试,因为它可能存在与图像头参见问题libpng error: Read Error或与您的libpng版本,比较。 Libpng conflict on OpenCV?

+0

添加一个标志并在路径前使用'r'不起作用。我尝试保存可以作为PNG打开的jpg,但是当我尝试使用imread读取它时,我得到相同的错误。如果问题是由libpng版本引起的,我不应该像在“OpenCV上的Libpng冲突?”链接中那样获得不同的错误 - 链接? –

+0

你可以用'img2 = cv2.imread(r“D:\ Images \ jpg_image.jpg。”,0)''打开'.jpg'吗?通常这应该工作,如果它的工作问题要么'libpng'或与您的PNG头或权限问题,通常上面的Python代码是正确的 –

+0

是的,我可以打开一个.jpg。我现在尝试更新conda和libpng,但在更新后仍然出现相同的错误。有没有办法缩小我的错误来自哪里?我对Python和OpenCV还很陌生,所以我还没有那么多的经验。 –