【发布时间】:2022-02-22 17:00:59
【问题描述】:
我正在尝试使用 cv2.imread 加载多个图像,并且我还在 imageIDname.txt 中指定了完整路径(如下所示):
'C:/yolov4/coco/images/val2017/000000397133.jpg'
'C:/yolov4/coco/images/val2017/000000037777.jpg'
'C:/yolov4/coco/images/val2017/000000252219.jpg'
...
但似乎 cv2.imread 无法打开它们。 这是我的代码
b=open('C:/yolov4/imageIDname.txt','r')
for item in b.readlines():
print(item)
print(type(item))
original_image = cv2.imread(item)
original_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB)
和错误日志
'C:/yolov4/coco/images/val2017/000000397133.jpg'
<class 'str'>
Traceback (most recent call last):
File "c:/yolov4/detect.py", line 120, in <module>
app.run(main)
File "C:\Users\kaelt\AppData\Local\Programs\Python\Python37\lib\site-packages\absl\app.py", line 303, in run
_run_main(main, args)
File "C:\Users\kaelt\AppData\Local\Programs\Python\Python37\lib\site-packages\absl\app.py", line 251, in _run_main
sys.exit(main(argv))
File "c:/yolov4/detect.py", line 44, in main
original_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.4.0) C:\Users\kaelt\Downloads\opencv-4.4.0\opencv-4.4.0\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
但是,当我运行 cv2.imread('C:/yolov4/coco/images/val2017/000000397133.jpg') 时,一切都很好。
好吧,既然我要运行 5000 张图像,最好不用一张一张地运行。
感谢您的帮助!
【问题讨论】:
-
cv2.imread('C:/yolov4/coco/images/val2017/000000397133.jpg', cv2.COLOR_BGR2RGB)运行正常吗?您使用单个文件路径的示例不包括颜色,我想知道这是否相关 -
我很确定使用单个文件路径可以正常运行。这就是为什么我对此感到非常沮丧。如果您需要证据,我可以在这种情况下添加一个
print(),但我认为没有必要 -
由于
print最终打印出单引号,这意味着路径字符串包含它们,因此路径无效。你基本上是在做类似cv2.imread("'C:/yolov4/coco/images/val2017/000000397133.jpg'")的事情。 -
我会在运行单个文件路径
[[[124 128 77] [120 126 64] [104 111 57] ... [ 11 12 14] [ 9 10 12] [ 12 13 15]] [[115 131 68] [120 136 73] [ 94 109 52] ... [ 13 13 13] [ 10 10 10] [ 11 11 9]] [[115 126 68] [117 131 69] [ 89 104 45] ... [ 8 6 7] [ 43 42 40] [ 61 60 56]] ... [[139 104 74] [142 107 79] [139 105 77] ... [ 50 33 25] [ 50 33 25] [ 44 30 21]] [[140 105 73] ... [ 47 29 19] [ 50 32 22] [ 49 32 22]]]时显示证据@