MATLAB을 사용하여 번역만을 기반으로하는 이미지 등록을하려고하므로 먼저 간단한 테스트를 수행했습니다.
두 이미지 사이에 세로 방향으로 20 픽셀 이동이 있음을 알 수 있으며, 등록을 수행하기 위해 두 가지 기능을 시도했습니다.
[optimizer,metric] = imregconfig('Monomodal');
tform = imregtform(img1,img2,'Translation',optimizer,metric);
img1reg = imregister(img1,img2,'Translation',optimizer,metric);
둘 다 일 하지도 imregtform
않았습니다 imregister
. imregtform
단위 변환 행렬이 imregister
주어졌고 "img1reg" 의 출력은 입력 동영상 "img1"과 정확히 동일합니다.
이 문제를 어떻게 해결할 수 있습니까?
내가 사용한 코드는 다음과 같습니다.
img1 = zeros(100, 20);
img1(35:45,:) = 1;
img2 = zeros(100, 20);
img2(55:65,:) = 1;
[optimizer,metric] = imregconfig('Monomodal');
tform = imregtform(img1,img2,'Translation',optimizer,metric);
img1reg = imregister(img1,img2,'Translation',optimizer,metric);
"작은 번역을 고려할 필요가 있습니다. 이렇게 큰 번역을 사용하면 고정 이미지의 객체가 동영상의 객체와 전혀 겹치지 않습니다. 따라서 알고리즘을 지시하는 등록 비용 함수에 기울기가 없습니다.
일반적으로 사람들은 먼저 상관 관계 기반 등록을 수행하여 위와 같은 전체적인 오정렬을 포착 한 다음 수정합니다. "
https://www.mathworks.com/matlabcentral/answers/311776-image-registration-fucntions-don-t-work-for-a-simple-test 에서 답변을 참조하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다