2014-02-25 2 views
0

opencv와 함께 제공되는 샘플 코드를 사용하여 노트북 웹캠을 보정했습니다.카메라 보정 결과 : 입력과 비슷한 이유는 무엇입니까?

저는 체스 판에서 약 82 개의 이미지를 만들고이를 처리하기 위해 코드를 사용했습니다.

결과는 다음과 같다 :

This is a camera calibration sample. 
Usage: calibration configurationFile 
Near the sample file you'll find the configuration file, which has detailed help 
of how to edit it. It may be any OpenCV supported file format XML/YAML. 
Re-projection error reported by calibrateCamera: 0.424482 
Calibration succeeded. avg re projection error = 0.424483 

| 평균 프로젝션 오류가 이전과 동일하게 보인다. 왜 이런 일이 일어나는거야?

보정되지 않은 이미지를 보정 된 이미지로 변환하는지도를 만들려면 어떻게해야합니까?

+0

"평균 투영 오류가 이전과 동일합니까?"라는 것은 무엇을 의미합니까? 같은 오류를 두 번 표시하는 이유는 무엇입니까? – AldurDisciple

+0

보정 후 오류는 이전과 동일합니다. 왜? – mans

+0

'calibrateCamera : 0.424482에 의해 재 투영 오류가보고되었습니다. '이 줄은 교정 전에 오류를 나타내지 않지만 교정 기능'calibrateCamera'의 끝에서 얻은 오류입니다. 다른 숫자는 보정 후 동일한 오류에 대한 두 번째 평가입니다. – AldurDisciple

답변

1

보정 도구는 카메라 계수 K 및 왜곡 계수 D을 저장 한 XML/YML 파일을 생성해야합니다. cv::FileStorage 클래스 (documentation link)를 사용하여이 계수를로드 할 수 있습니다. 이 클래스 사용 방법은 This tutorial에 설명되어 있습니다. 사용자가 교정 데이터 (매트릭스 K 왜곡 계수 D)를 일단

, 당신은 렌즈 왜곡 보정 된 이상적인 이미지를 생성하는 기능 undistort (documentation link)를 사용할 수있다.

두 번째 질문과 관련하여 콘솔에 표시된 두 숫자는 모두 교정 후 재 투영 오류를 추정 한 것입니다. 교정 절차가 끝날 때보고 된 것이고 두 번째가 실행 가능한 교정 샘플에 의해보고 된 것입니다.

+0

교정 후 어떻게 K와 D를 얻을 수 있습니까? 이미지를 써서 나중에 왜곡시키지 않고 재사용 할 수 있습니까? – mans

+0

교정 실행 파일에 의해보고 된 바와 같이 교정은 K와 D를 XML/YML 파일에 어딘가에 기록해야합니다. 웹캠의 온도 변화가 심하지 않은 이상 이러한 계수는 시간이 지남에 따라 거의 일정하게 유지되어야합니다. – AldurDisciple

+0

예, 저장되었습니다. 어떻게 읽을 수 있으며이 기능과 함께 사용할 수 있습니까? – mans

관련 문제