为啥 cv2.imread() 不存储我的图像文件的名称?
Posted
技术标签:
【中文标题】为啥 cv2.imread() 不存储我的图像文件的名称?【英文标题】:Why is cv2.imread() not storing the name of my image files?为什么 cv2.imread() 不存储我的图像文件的名称? 【发布时间】:2019-10-23 18:20:16 【问题描述】:我正在尝试编写一个脚本,它将获取给定目录中的所有图像并格式化大小。
我已经能够使用 OS 将文件作为列表导入并使用循环拆分它们。我已经成功打印了每个文件名和索引,但是当我尝试使用 cv2.imread() 获取维度值时,它返回“None”,使我无法获取形状,并向我抛出 AttributeError。
我已经尝试卸载并重新安装 opencv-python。正如here建议的那样。
import os
import cv2
def imageResize():
dirlist = os.listdir('images')
for c, file in enumerate(dirlist):
print(c, file)
img = cv2.imread(file)
height, width = img.shape[0, 2]
print(height, width)
if __name__ == '__main__':
imageResize()
预期输出:
0 image17_10.png
600px 400px
1 image15_9.png
500px 500px
...
实际输出:
0 image17_10.png
height, width = img.shape[0,2]
AttributeError: 'NoneType' object has no attribute 'shape'
【问题讨论】:
【参考方案1】:欢迎堆栈溢出! 打开文件的时候好像漏掉了路径,那行应该是:
cv2.imread('images'+os.path.sep+file)
或从文件名构造文件路径的任何其他方式。
【讨论】:
非常感谢!我以前从未使用过这些模块中的任何一个,所以我想我没有意识到在使用该功能时我需要指定路径!再次感谢!以上是关于为啥 cv2.imread() 不存储我的图像文件的名称?的主要内容,如果未能解决你的问题,请参考以下文章
python,opencv,imread,imwrite,存储,读取图像像素不一致,这种情况是label使用jpg格式