繁体   English   中英

为什么 openCV 中的 imread 没有打开某些图像?

[英]Why isn't imread in openCV opening some of the images?

我得到的错误是

“回溯(最近一次调用最后):文件“C:\Users\harit\Desktop\red.py”,第 6 行,在 cv2.imshow('img',img) 错误:C:\projects\opencv-python\ opencv\modules\highgui\src\window.cpp:304: error: (-215) size.width>0 && size.height>0 in function cv::imshow"

相关代码是这样的:

import cv2
import numpy as np

img = cv2.imread('C:\Users\harit\Desktop\images\12.jpg')

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

尝试改变

img = cv2.imread('C:\Users\harit\Desktop\images\12.jpg')

img = cv2.imread(r'C:\Users\harit\Desktop\images\12.jpg')

反斜杠是转义字符,引号前的r告诉python“忽略”它们。

例如:

>>> s = 'C:\Users\harit\Desktop\images\12.jpg'
>>> print s
C:\Users\harit\Desktop\images
.jpg

这是错误的路径!...在字符串前面带有“ r”:

>>> s = r'C:\Users\harit\Desktop\images\12.jpg'
>>> print s
C:\Users\harit\Desktop\images\12.jpg

有关原始字符串的更多信息,请参见https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals

我想我有点理解这个问题。 也许我的解决方案错了。 当我第一次遇到这个问题时,我认为 open cv 只接受 png 图像而不是 jpg 然而,即使在将图像转换为 png 之后,它仍然没有解决 go 的问题。 后来,我尝试重命名图像的名称,新名称以字母而不是数字开头,并且有效。 因此,也许 python open cv 无法读取名称以数字开头的文件,就像它不能接受任何以数字开头的变量名称一样。 也许我完全错了,但是重命名图像文件使问题 go 消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM