python 3.6.2 cv2.imread() 路径含有中文读取图片失败解决方案

先从一个简单的图片显示程序开始,代码如下:

import cv2 
def main():
    img=cv2.imread(r"F:\timg.jpg")
    cv2.imshow('image',img)
    cv2.waitKey(0)  
if __name__ == '__main__':
    main()

执行结果如图:
python 3.6.2 cv2.imread() 路径含有中文读取图片失败解决方案_第1张图片

import cv2 
def main():
    img=cv2.imread(r"F:\图灵碗.jpg")
    cv2.imshow('image',img)
    cv2.waitKey(0)  

if __name__ == '__main__':
    main()

报错,错误提示:
长、宽均是0
读取图片时发生异常,一切都是中文路径惹的祸,编程还是一切以英文为主比较好,免得出错。解决方法如下:

import cv2 
import numpy as np

def main():
    img=cv2.imdecode(np.fromfile(r"F:\图灵碗.jpg",dtype=np.uint8),-1)
    #img=cv2.imread(r"F:\图灵碗.jpg")
    cv2.imshow('image',img)
    cv2.waitKey(0)  

if __name__ == '__main__':
    main()

完美运行,图片成功显示,借助于numpy来读入数据,然后cv2.imdecode()把数据转换(解码)成图像。

你可能感兴趣的:(opencv开发)