728x90
반응형
문제점 및 증상
잘 동작하던 코드를 다른 곳으로 복사하여 실행하였더니, 다음과 같은 오류가 발생하였습니다.
(rknn) hunature@orangepi5:/opt/hunature/vpc_gabo/demo$ python rknn_demo1.py
--> Load RKNN model
done
[ WARN:0@0.178] global loadsave.cpp:244 findDecoder imread_('./space_shuttle_224.jpg'): can't open/read file: check file path/integrity
Traceback (most recent call last):
File "/opt/hunature/vpc_gabo/demo/rknn_demo1.py", line 77, in
img = cv2.cvtColor(ori_img, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.7.0) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'
해결 방법
이 오류는 OpenCV의 cvtColor 함수에서 이미지 객체(ori_img)가 비어 있거나 NULL인 경우 발생합니다. 이 문제를 해결하는 방법은 ori_img에 사용 가능한 이미지 객체를 전달하는 것입니다.
첫 번째는 다음과 같이 "cv2.imread()" 함수를 사용하기 전에 이미지 파일이 존재하는지 확인하여 처리하는 방법이 있습니다.
from os import path
import cv2
# 이미지 파일이 존재하는지 확인
if (not path.exists("image.jpg")):
print("Error: Image not found")
exit(-1)
# 이미지 파일을 읽어옴
ori_img = cv2.imread("image.jpg", cv2.IMREAD_COLOR)
# 이미지 컬러 순서 변환
dst = cv2.cvtColor(ori_img, cv2.COLOR_BGR2RGB)
두 번째는 이미지 파일 "cv2.imread()" 함수를 사용하여 받은 이미지 객체가 정상적인지 확인하여 처리하는 방법입니다.
import cv2
# 이미지 파일을 읽어옴
ori_img = cv2.imread("image.jpg", cv2.IMREAD_COLOR)
# 이미지 객체가 유효한지 확인
if (ori_img is None):
print("Error: Image not loaded")
exit(-1)
# 이미지 컬러 순서 변환
dst = cv2.cvtColor(ori_img, cv2.COLOR_BGR2RGB)
첫 번째 파일 존재만 확인해서는 파일 자체의 오류가 있는 경우에는 동일한 문제가 발생할 수 있으므로, 두 방법을 모두 이용하는 것이 상세한 오류를 확인할 수 있을 겁니다. 한 가지만 사용하겠다고 한다면 두 번째 방법을 이용해야만 합니다.
참고자료
- "imread returns None, violating assertion !_src.empty() in function 'cvtColor' error":https://stackoverflow.com/questions/52676020
'프로그래밍 > Python' 카테고리의 다른 글
[Python] pytube에서 "KeyError('streamingData')" 오류 발생 문제 (6) | 2023.05.01 |
---|---|
[Python] Qt5 UI의 폰트 및 컨트롤이 깨져서 표시되는 문제 (0) | 2023.03.28 |
[Python] PNA Network Analyzer에서 현재 화면 데이터 다루기 (0) | 2023.02.20 |
[Python] RKNN_toolkit2를 이용한 onnx -> rknn 모델 변환 소스 (0) | 2023.02.17 |
[Python] pytube로 영상 다운로드 시, 발생하는 'NoneType' object has no attribute 'span' 오류 (0) | 2023.01.26 |