解決python中OpenCV庫讀取圖像函數不支持中文路徑問題
問題描述:
在使用cv2.imread()函數進行讀取圖片的時候發現讀取失敗,首先需要確保路徑有沒有寫錯(如:\需要寫成\\),如果路徑沒有寫錯,但是報下面的錯誤。則表明是中文編碼的問題。如:error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

解決方法:
在cv2中有另外一個函數可以幫助我們解決中文的問題。下面給出解決的參考程序:
import cv2 # 導入cv2
import numpy as np # 需要使用到里面的函數
def my_cv_imread(filepath):
# 使用imdecode函數進行讀取
img = cv2.imdecode(np.fromfile(filepath,dtype=np.uint8),-1)
return img
# 這里路徑需要注意:
# 1、如果使用的是Windows的\做為分隔,則需要使用\\來進行區分,因為單個\表示轉義字符
# 2、如果不想使用\\可以在原來的路徑前面加上r進行標識
filepath = 'D:/code/Python/圖像/問題解決/解決中文路徑問題/5.jpg'
img = my_cv_imread(filepath) # 獲取讀取的圖像
cv2.imshow('image', img) # 顯示圖像
cv2.waitKey(0)
注:在上面的路徑問題上,也要注意\和/的區別,在注釋當中已經解析了。這里如果處理不當,同樣會造成讀取失敗的情況。
