2016-10-30 5 views
0

템플릿 일치를 위해 corr2를 사용하려고합니다. 그러나 함수에 첫 번째 픽셀과 템플릿 행렬 주위에 창을 주면 NaN 오류가 발생합니다.matrab의 corr2가 NaN을 반환합니다.

For ex :- 
template = uint8([1 1 1 0; 1 1 1 0;1 1 1 0]); 
window = uint8([0 0 0 0; 0 0 0 0;0 0 0 0]); 
When i do corr2 on this two matrix :- 
r = corr2(template,window); 
r = NaN. 

하지만 창 1 행렬의 0 값 중 하나를 변경하면,보다 저 NaN이 출력 다른 준다. 링크를 따라 가고 있습니다 : - https://www.youtube.com/watch?v=Q-OzmDen4HU 템플릿 매칭은 첫 번째 픽셀의 출력을 0으로 표시합니다. 나는 내가 어디에서 잘못하고 있는지 알지 못한다. 당신이 알고리즘에 따라 페이지 하단에 보면

답변

2

Corr2 Documentation

, 그것은 결과가 Corr2으로 표현 될 것입니다 방정식을 제공합니다.

두 번째 행렬은 영 행렬, 방정식의 분모에 같은 두 번째 합계 0이 될 것입니다, 당신은 이상적인 방법이 작업을 수행하기 때문에 무슨 일 0

+0

로 나눌 것인가? 비디오 링크 에서처럼 NaN 대신에 0이 표시됩니다. Matlab에 익숙하지 않아서 그런 경우를 다루기가 어렵다고 생각합니다. – Batman

+0

계산 전에 'nnz (template) == 0'또는 'nnz (window) == 0'인지 확인하면 그 결과가 0인지 여부와 결과를 알 수 있습니다. –

+0

ok ... 많이 고마워요! – Batman

관련 문제