2017-04-03 72 views
4

我有下面的代碼,它失敗了,因爲它無法從磁盤讀取文件。圖像始終是None如何從Unicode字符的路徑中讀取圖像?

# -*- coding: utf-8 -*- 
import cv2 
import numpy 

bgrImage = cv2.imread(u'D:\\ö\\handschuh.jpg') 

注意:我的文件已被保存爲帶有BOM的UTF-8。我用Notepad ++進行了驗證。

在進程監視器,我看到Python是從錯誤的道路acccessing文件:

Process Monitor

我看了一下:

回答

5

它可以通過

  • 打開使用open()文件,它支持Unicode作爲在鏈接的答案來完成,
  • 讀取的內容作爲一個字節數組,
  • 轉換字節數組到NumPy的陣列,
  • 解碼圖像
# -*- coding: utf-8 -*- 
import cv2 
import numpy 

stream = open(u'D:\\ö\\handschuh.jpg', "rb") 
bytes = bytearray(stream.read()) 
numpyarray = numpy.asarray(bytes, dtype=numpy.uint8) 
bgrImage = cv2.imdecode(numpyarray, cv2.IMREAD_UNCHANGED) 
0
bgrImage = cv2.imread(filename.encode('utf-8')) 

編碼文件全路徑爲UTF-8

相關問題