2017-05-11 2 views
1

OpenCV를 Python과 함께 사용하고 있습니다. 더 구체적으로 findTransformECC 문자 집합을 cv2으로 사용하여 이미지를 등록합니다. 이 함수는 알고리즘이 수렴하지 않으면 오류를 발생시킬 수 있습니다. 간단한 try ... except 명령어로 오류를 잡아 내고 오류를 처리합니다. 그러나 OpenCV 오류 메시지가 여전히 내 터미널에 표시되며이를 숨기고 싶습니다. 어떻게해야합니까? findTrnaformECC 기능이 올바르게 오전 오류 내 프로그램을 던졌습니다 내 사용자 지정 오류 메시지 (An error occured but it does not matter)뿐만 아니라 OpenCV의 오류 (OpenCV Error: Iterations do not converge (The algorithm stopped before its convergence. The correlation is going to be minimized. Images may be uncorrelated or non-overlapped) in findTransformECC, file /home/travis/miniconda/conda-bld/conda_1485299288502/work/opencv-3.2.0/modules/video/src/ecc.cpp, line 530)를 출력하고 나는 그것을 방지하려는 경우 여기 python OpenCV 오류를 표시하지 않음

간단한 exemple

try: 
    cc, warp_matrix = cv2.findTransformECC(img1, img2, warp_matrix) 
except cv2.error: 
    cc = 15; 
    print("An error occured but it does not matter") 

입니다.

+1

오류는'stderr'에 기록됩니다. 그래서 당신은 [stderr'를 리디렉션 할 수 있습니다] (http://stackoverflow.com/a/6735958/5008845). 아니면 출력을 억제하기 위해 [opencv] (http://stackoverflow.com/a/17575610/5008845) 말할 수 있지만'cv :: redirectError' 함수를위한 파이썬 바인딩이 있는지 나는 알지 못한다. – Miki

+0

this 위대한 것 같지만 표준 오류를 리디렉션 아무것도하지 않았다 ... – fonfonx

답변

0

stderr를 리디렉션 제대로 작동하지만 그것은 나에게 꽤 잘 작동 명령 줄에서 리디렉션 할 수있는 아이디어 (유닉스 기반 시스템)

python myscript.py 2> /dev/null 

그러나이 다른 모든 오류를 숨길 수 준하지 않았다 stderr에 표시되어야합니다. 이것은 정확한 적용을위한 문제가 아니지만 그럴 수 있습니다.

관련 문제