gpt4 book ai didi

python - cv2.imread 在脚本中失败,而不是在命令行中失败

转载 作者:太空宇宙 更新时间:2023-11-03 21:05:02 25 4
gpt4 key购买 nike

cv2.imread("some.jpg") 无法读取许多不同的 jpg。我已经检查了一百万个不同的东西:

  1. 在终端中运行完全相同的代码 - 读取和打开图像都很好
  2. 我检查了 python 和 cv2 的版本号 - 它们完全相同:3.4.33.1.0
  3. 使用完整的文件路径。没有区别
  4. 图像存在:我已经手动打开了几十个以查看是否有东西
  5. 时间:添加暂停只是为了确保这不是时间问题。
  6. 检查以确保 img/filename 存在 print(os.path.exists(filename)) # prints True
  7. 将文件路径硬编码到 `img = imread("gif_pos_0pW-p-wb8U4_0.jpg") # print(img)... None
filename = random.choice(filename_list)
print("reading:", filename) # prints correct/verified jpg paths
sleep(.5)
img = cv2.imread(filename)
sleep(.3)
print(img) # none
read_image = cv2.resize(img, (IMAGE_WIDTH, IMAGE_HEIGHT), 3)

img 为 none 且调整大小行失败并显示:OpenCV 错误:调整大小断言失败 (ssize.area() > 0),文件/home/user/opencv/modules/imgproc/src/imgwarp.cpp,第 3229 行

如果重要的话,这是 Ubuntu 15.1。关于可能导致这种情况的原因有什么想法吗?

是的,我知道这个问题存在于其他地方。 现有的答案对我没有帮助。我已经四次检查了所有内容。似乎还有其他事情发生。

最奇怪的部分是 cv2 可以从命令行读取图像,使用完全相同的 python 和 cv2 版本

编辑:这是一个脚本,所以我只是在做 python3 train.py

最佳答案

与在命令行上执行代码相比,脚本可能以不同的用户、不同的权限或在不同的位置执行。

  • 使用os.path.isfile检查文件是否存在在代码中
  • 提供有关脚本(语言)的详细信息以及您如何启动它。这是一个 cron 作业,还是一个可执行文件?从命令行手动启动脚本,只有在启动后才能创建批处理作业或从其他脚本调用它。
  • 你能举例说明路径吗?
  • 在不使用 random.choice 的情况下尝试加载位于同一目录中的单个图像是否有效?)
  • 下面的代码是否适用于附加的图像?它对我有用。

enter image description here

import cv2

img=cv2.imread("image.jpg")

cv2.imshow('Test',img)
if cv2.waitKey(0) & 0xff == 27:
cv2.destroyAllWindows()

关于python - cv2.imread 在脚本中失败,而不是在命令行中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37552975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com