python에서 opencv를 사용하면서 한글(유니코드)로 인한 문제가 발생 할 경우가 있다.
python의 opencv에서는 유니코드를 처리하지 못하기 때문에 발생하는 문제라고 한다.
이러한 경우 아래와 같이 imencode 함수를 이용하여 우회하는 방식으로 해결 가능하다.
<imread>
import numpy as np
import cv2
def imread(filename, flags=cv2.IMREAD_COLOR, dtype=np.uint8):
try:
n = np.fromfile(filename, dtype)
img = cv2.imdecode(n, flags)
return img
except Exception as e:
print(e)
return None
<imwrite>
import numpy as np
import cv2
import os
def imwrite(filename, img, params=None):
try:
ext = os.path.splitext(filename)[1]
result, n = cv2.imencode(ext, img, params)
if result:
with open(filename, mode='w+b') as f:
n.tofile(f)
return True
else:
return False
except Exception as e:
print(e)
return False
'Programming > Python' 카테고리의 다른 글
conda 기존 환경을 복사하여 새로운 환경을 만들자 (4) | 2019.11.06 |
---|---|
pip에서 ImportError: cannot import name 'main' 를 해결하자 (0) | 2019.09.20 |
python 2.X에서 dump한 pickle 3.X 버전에 읽기 (0) | 2019.09.03 |
list 생성과 초기화 같이 하자 (0) | 2019.08.14 |
list 에서 최대값과 최대값의 index를 찾아보자 (0) | 2019.08.14 |