저는 파이썬과 opencv world에 매우 익숙합니다. 나는 단지 이미지를 읽고 보여 주려고했으나 항상 오류가 발생합니다 :파이썬 모듈 내부의 sys.path 경로에서 이미지를 읽으십시오.
error: D:\Build\OpenCV\opencv-3.1.0\modules\highgui\src\window.cpp:289: error: (-215) size.width>0 && size.height>0 in function cv::imshow
나는 test.py라는 모듈을 만들었습니다. ": \ 이력서 \ 이미지 C" 아래와 같이 보여 :
import cv2;
import sys;
sys.path.append('C:\\cv\\images');
im = cv2.imread('car.png');
cv2.imshow('Car Figure',im);
cv2.waitKey(0);
나는를 디버깅 할 때 해당 모듈에서 나는 내 시스템 경로에을 "car.png"이미지 을 읽으려고 코드, 메신저 변수가 초기화되지 않았 음을 알 수 있습니다. 그 이유는 그 오류 코드입니다. 그러나 sys.path를 인터프리터에 입력하면 경로가 이미 모듈을 실행하려고 시도 할 때마다 여러 번 추가되었음을 알 수 있습니다. 그리고 인터프리터에서 직접 모듈 내용을 복사/붙여 넣기하면 코드가 제대로 작동하고 이미지가 나타납니다.
모듈 내부에서 sys.path가 고려되지 않아 python이 이미지를 읽을 수없는 것 같습니다.
이것이 정상적인 동작인지, 아니면 내 모듈 내부에서 sys.path 내용을 해석하도록 통역해야합니까?
같은 오류를 시도 shoudl 될 것이어야한다. 내가 언급 한대로 모듈 내부에서 sys.path를 출력합니다. 'C : \\ cv \\ images'경로가 이미 sys.path 목록에 있음을 알 수 있습니다. 그러나 imread는 'car.png'파일을 볼 수 없습니다. –
@HishamRagheb 위의 코드를 수정하여 문제를 해결했습니다. 내가 말하는 것은'imread'는'sys.path'를 인식하지 못하기 때문에 소스 코드를 수정하고 Open CV를 다시 컴파일하지 않는 한 그것을 인식하지 못합니다. –
귀중한 정보에 감사드립니다. 당신의 솔루션은 훌륭해 보이지만 opencv 컴파일이 필요합니다. 아직 Java 세계 전설에서 파이썬으로 크롤링하고 있습니다. @holdenweb의 간단한 힌트는 os.path.dirname (sys.argv [0]) + '\\ images'를 사용하면 내 이미지 폴더를 상대적으로 참조 할 수 있습니다. 다시 감사합니다. 투표를 원하지만 내 평판이 여전히 낮습니다. –