【发布时间】:2019-01-07 16:29:13
【问题描述】:
我遇到问题的代码部分如下。
if __name__ == '__main__':
for n, image_file in enumerate(os.scandir(image_folder)):
img = image_file
fig, ax = plt.subplots(1)
# mngr = plt.get_current_fig_manager()
# mngr.window.setGeometry(250, 120, 1280, 1024)
image = cv2.imread(image_file.path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
我收到以下错误
image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(3.4.4) C:\projects\opencv-python\opencv\module\imgproc\src\color.cpp:181:error:(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
我了解 imread() 可能为空,因为它尝试读取的图像未正确保存。我正在尝试使用保存为 000001、000002、000003 的 3 个图像来测试此代码...我对为什么保存在 C:\imagez 文件夹中的图像不起作用感到困惑。我尝试保存 3 张新图像,但仍然出现相同的错误。任何建议都会很棒!
【问题讨论】:
-
你可以从修复你的代码开始——它似乎错过了一些
',因此颜色很奇怪。您似乎还阅读了 directory - 不是文件......您可能想要在其中阅读文件.. 将其名称添加到 cv2.imread 的输入 - 并阅读其文档以修复其他错误:docs.opencv.org/3.0-beta/modules/imgcodecs/doc/… -
@PatrickArtner 抱歉,我从错误的版本发布了我的代码,代码中的 imread 在 () 中有 (image_file.path)
-
通常是提供的路径/字符串有问题。以这种方式测试它:创建一个新图像,使用 imwrite 将其保存到某个路径/文件名,然后再次使用 imread 加载相同的图像路径。这应该可以工作,您可以测试文件是否是在您期望的路径上创建的。