开发工具:pycharm
在“python+opencv基础篇——实现提取轮廓”篇中,我使用了cv2.imdecode方法来处理中文路径问题,但是这个方法有bug,有时(偶发)读到的图片会丢失参数,最明显的是在拿取图片的信息(img_data.shape)时,只能拿到图片的宽高,而且通道也会有问题。
所以改为用PIL来读取图片,再用opencv转成之前的图片格式,代码:
from PIL import Image
# 注意一定是引入PIL的Image而不是PIL.Image的Image
pil_image = Image.open(filename)
img_data = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
cv2.imread默认通道是BGR,PIL读到的是RGB。