I have the following code and it fails, because it cannot read the file from disk. The image is always None
.
# -*- coding: utf-8 -*-
import cv2
import numpy
bgrImage = cv2.imread(u'D:\\ö\\handschuh.jpg')
Note: my file is already saved as UTF-8 with BOM. I verified with Notepad++.
In Process Monitor, I see that Python is acccessing the file from a wrong path:
I have read about:
open()
function and not related to OpenCV.It can be done by
open()
, which supports Unicode as in the linked answer,# -*- 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)
or (as mentioned in the comments, thanks to jdhao):
# -*- coding: utf-8 -*-
import cv2
import numpy
bgrImage = cv2.imdecode(np.fromfile(u'D:\\ö\\handschuh.jpg', np.uint8), cv2.IMREAD_UNCHANGED)