
#!/usr/bin/env python
# -*- coding: gbk -*-
import cv2
img_head = cv2.imread('月亮.jpg')
img_flag = cv2.imread('国旗.png')
#获取头像和国旗图案宽度
# ~ w_head, h_head = img_head.shape[0:2]
print(img_head.shape[:2])
尝试输出所获得图片长和宽后报错:
AttributeError: ‘NoneType’ object has no attribute ‘shape’
一直都不太了解Attribute的意思,这里列出Attribute的翻译
n.属性;象征
v.把…归因于;认为…属于;认为某人(某物)具有某种特性
我目前的翻译是‘无类型的对象没有shape属性’
一开始我以为是因为我的图片地址没有写全,然而修改后依旧不行,以下是我修改后的代码:
img_head = cv2.imread(r'D:MyExam(data)月亮.jpg') img_flag = cv2.imread(r'D:MyExam(data)国旗.png')
最后我通过测试发现是cv2.imread()获取不到头像,后面看了’‘https://blog.csdn.net/chouzhou9701/article/details/111218361’'这篇文章才恍然大悟,原来cv2.imread()中获取的函数路径中不能包括中文,经修改程序正常运行:
img_head = cv2.imread(r'D:/MyExam(data)/moon.jpg') img_flag = cv2.imread(r'D:/MyExam(data)/The flag of China.png')
搞定!!!
反思:我最先反应到的错误是我的路径没有写全,这确实是一个错误,然后我心中对于python路径的格式很模糊,在cv2.imread()函数里,路径地址中的分隔符经过实测,可以是‘\’ or ‘’ or ‘/’,路径前的‘r’则可加可不加。