【发布时间】:2021-08-25 08:52:03
【问题描述】:
我想从一个文件夹中加载一些图像并一张一张地查看它们,但是使用一种方法我收到一条错误消息,另一种方法虽然没有错误,但根本没有打开图像,最后一种方法只是返回一个空列表。
我尝试过一些路径变量。我已经尝试了path1 中显示的工作目录和pathGlob 中显示的另一个目录。我已经尝试了所有变体,但我会在不同的路径中使用这两种方法来向您展示,以防万一这很重要。
path1 = r'C:\Users\Kays_\PycharmProjects\CompVisionExam\Calibration_images'
path2 = os.listdir('Calibration_images')
pathGlob = glob.glob(r'C:\Users\Kays_\Documents\Exam_for_27\Dataset\Calibration_images,*.jpg')
我将粘贴的 3 个文件夹复制到我的工作目录中(以及在另一个位置尝试这两个目录),我尝试使用 os.listdir 调用它,如下所示。
path2 = os.listdir('Calibration_images')
image_list = []
for filename in path2:
im = PIL.Image.open(filename)
image_list.append(im)
print(image_list)
这将返回此错误消息:
C:\Users\kays_\PycharmProjects\CompVisionExam\venv\Scripts\python.exe
C:/Users/kays_/PycharmProjects/CompVisionExam/main.py
Traceback (most recent call last):
File "C:/Users/kays_/PycharmProjects/CompVisionExam/main.py", line 41, in <module>
im = PIL.Image.open(filename)
File "C:\Users\kays_\PycharmProjects\CompVisionExam\venv\lib\site-packages\PIL\Image.py", line 2968, in open
fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'cali (1).jpg'
path1 和 path2(在两个目录选项中)都会出现此错误,但是对于 path1 它指出:
FileNotFoundError: [Errno 2] No such file or directory: 'C'
对我来说,这意味着图像的位置正确,即使它另有说明,因为我没有给出文件的名称,而是工作目录中的文件夹,它返回循环中迭代的第一个图像的名称,但仍然无济于事。
当我在这个循环中使用pathGlob 时,它会返回一个空列表[]。
我已尝试使用此循环:
path2 = os.listdir('Calibration_images')
for image in image_list:
print(image)
img = cv2.imread(image)
cv2.imshow('img', img)
cv2.waitKey(1000)
此过程以exit code 0 结束,但不会为pathGlob 打开任何图像。代码运行的时间也不够长,无法打开但不显示图像,所以我也不确定这里有什么问题!当我使用 path1 和 path2 时,我收到以下错误消息:
C:\Users\kays_\PycharmProjects\CompVisionExam\venv\Scripts\python.exe C:/Users/kays_/PycharmProjects/CompVisionExam/main.py
cali (1).jpg
Traceback (most recent call last):
File "C:/Users/kays_/PycharmProjects/CompVisionExam/main.py", line 26, in <module>
cv2.imshow('img', img)
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-q3d_8t8e\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
我之前在另一个脚本中看到过此错误消息,并通过正确创建我的路径变量来解决,这次我似乎无法做到这一点。
我在网站上的其他问题和随机谷歌搜索中寻求帮助,但无济于事。
【问题讨论】:
-
error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor',检查您是否可以在外部应用程序中打开此图像(例如,Windows 照片) -
我已经检查过了,我可以手动打开图像,也可以使用类似:
path = r'C:\Users\Kays_\Documents\Exam_for_27\Dataset\Fixed point\Fixed_Point.jpg'read = cv2.imread(path)show = cv2.imshow('img', read)cv2.waitKey()这仅适用于单个图像(对不起,我不知道如何在这里做代码块)@AcaNg -
@Rekkus 您是否尝试过调试并从
for filename in path2:行查看filename是什么?尝试在for filename in path2:之后执行print(filename)看看输出什么? -
我不知道该怎么做,@Xitiz