창작은 어렵다. 하지만 기록은 쉽다.

[python] openCV 한글 경로 입력 본문

Python/Error Code

[python] openCV 한글 경로 입력

2610 2021. 8. 3. 09:48
import cv2
import numpy as np
#이미지 불러오기
img = cv2.imread('C:/Users/내컴/Pictures/Saved Pictures/신발.png')
cv2.imshow('img',img)

Traceback (most recent call last):
  File "<input>", line 5, in <module>
cv2.error: OpenCV(4.5.3)

-증상

openCV를 이용하여 실제 데이터를 mnist로 학습시킨 모델에 적용하여 예측치를 확인하려는데 이미지를 불러오는데 에러(cv2.error: OpenCV(4.5.3))가 발생했다. 

 

확인해보니 imshow() 메서드를 실행할 때 올바른 값이 들어가지 않아 생긴 오류였다.

실제로 img 변수에 none 으로 제대로된 값이 할당되지 않았다.

경로 지정 문제인가 생각이 들어 파이썬 내부 패키지의 glob을 활용하여 지정경로의 파일을 저장해줬다.

 

 

import cv2
import numpy as np
# 지정경로의 파일을 가져올 수 있음.
import glob
#이미지 불러오기
img = glob.glob('C:/Users/내컴/Pictures/Saved Pictures/*.png')
img = cv2.imread('img')
cv2.imshow('img',img)

Traceback (most recent call last):
  File "<input>", line 1, in <module>
cv2.error: OpenCV(4.5.3)

하지만 똑같은 오류 4.5.3 오류가 났다 변수를 확인해보니 이번에도 경로를 읽지 못했다.

 

구글링을 해보니 cv2.imread 메서드를 이용시 경로에 한글이 있으면 문제가 발생했을 수 있다는 이야기를 들었다.

 

np.frofile 함수와 cv2.imdecode 함수를 통해 해결했다.

import cv2
import numpy as np
#이미지 불러오기
img ='C:/Users/내컴/Pictures/Saved Pictures/신발.png'

ff = np.fromfile(img, np.uint8) #경로를 np 어레이로 설정할 수 있음
img = cv2.imdecode(ff,cv2.IMREAD_UNCHANGED) #np 어레이로 설정된 경로 디코딩

cv2.imshow('img',img)

#키보드 입력있을때 까지 기다렸다가 입력시 나타난 윈도우 종료
cv2.waitKey(0) 
cv2.destroyAllWindows()

𝘙𝘦𝘧𝘦𝘳𝘦𝘯𝘤𝘦

 𝖻𝗌𝗄𝗒𝗏𝗂𝗌𝗂𝗈𝗇님 블로그- https://bskyvision.com/1078

 

[python] cv2.imread, cv2.imwrite 한글 경로 인식을 못하는 문제 해결 방법

cv2.imread 한글 경로 인식 문제 해결법 opencv 라이브러리의 cv2.imread 함수를 사용할 때 이미지 파일의 경로에 한글이 있는 경우에 제대로 읽어내지 못합니다. 다음 코드를 실행하면 에러가 뜹니다. 1

bskyvision.com

 

Comments