1. 程式人生 > >python 3.6.2 cv2.imread() 路徑含有中文讀取圖片失敗解決方案

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()

執行結果如圖:
在這裡插入圖片描述

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()把資料轉換(解碼)成影象。