使用Python+opencv2時的檔案命名及路徑問題
阿新 • • 發佈:2018-11-12
最近在做一個數字影象的小專案,在最後的介面與程式結合階段總是出現單個程式可以執行,但是使用介面傳遞的引數就執行不了的情況。在網上查了很多相關錯誤,最終確定是檔案命名問題。
錯誤如下:
cv2.error: OpenCV(3.4.1) C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\imgproc\src\color.cpp:11214: error: (-215) (scn == 3 || scn == 4) && (depth == 0 || depth == 5) in function cv::cvtColor
出現這種錯誤原因是檔案命名中含有中文名或者其他cv2中不支援的符號格式,解決方法可以考慮改變命名的編碼格式,修改字元型為整型等。
#將cv2.imread變為可讀取中文路徑的cv_imread()
def cv_imread(filePath):
cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)
#imdecode讀取的是rgb,如果後續需要opencv處理的話,需要轉換成bgr,轉換後圖片顏色會變化
#cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)
return cv_img
另外,檔案的路徑寫法也尤其重要,一般系統的路徑寫法為“C:\Users\27489\Desktop”,在python中‘\’為轉義字元,如果路徑中繼續使用的話,可能會引起歧義,所以建議python中的路徑統一使用‘/’或者‘\\’。