2011-02-11 5 views
9

아래와 같이 문제가 있습니다. 상단에있는 이미지는 원래 이미지로 하단에있는 이미지는 왼쪽으로 90도까지 찍었습니다. 각도 변화를 계산하는 방법이 있습니까? 나는 Hough 's Transform을 시도했지만 위치를 감지 할 수는 있지만 변경된 천사는 감지 할 수 없습니다. degreeschanged를 감지하는 대안이 있습니까? 기울이기 정도의 이미지 비교

enter image description here

enter image description here

+0

어떻게 수정합니까 ?? 나는 결코 이것을 알아 채지 못했다. – user288231

+0

최상의 답을 선택해야합니다. –

+0

... 실제로 문제가 해결되었다고 가정하면 – Justin

답변

5

나는 대칭 위상 만 일치하는 필터를 사용하기 전에이 작업을 완료했습니다. 실제로 지문 인식을 위해 회전 및 크기 조정이 가능했습니다. 불행히도, 꽤 복잡합니다. FFT를 계산하는 방법과 비슷한 수준의 수학을 사용하는 방법에 익숙해야합니다. 나는 C#, MATLAB (그리고 합성 가능한 Verilog에서, 그러나 그것은 또 다른 이야기이다)에서 그것을하지 않았다. MATLAB 또는 유사한 수학 패키지를 사용하여 먼저 알고리즘을 올바르게 사용하는 것이 좋습니다.

누군가가 이미이 알고리즘을 .NET 이미지 처리 라이브러리에서 구현했기를 바랍니다.

내가 사용한 논문은 다음과 같습니다. 알고리즘보다 수학 기반이므로 코드로 변환하려면 다음 작업을 수행해야합니다.

Qin-Sheng Chen; Defrise, M .; Deconinck, F. "Symmetric phase-only matched filtering of Fourier-Mellin transforms for image registration and recognition," 패턴 분석 및 기계 지능, IEEE 거래에, 16 권, 12 호, pp.1156-1168 12 월 1994 년

추상는 : 에 새로운 방법을 제시한다 2D 이미지를 번역 된 회전 및 크기 조정 참조 이미지와 일치시킵니다. 접근 방식은 일치하는 각 이미지에 대한 Fourier-Mellin 불변 (FMI) 디스크립터의 계산과 일치하는 FMI 디스크립터 의 두 단계로 구성됩니다. FMI 설명자는 번역 불변이고, 이며 매개 변수 공간에서 번역으로 회전 및 크기 조정을 나타냅니다. FMI 설명자를 일치시키는 것은 대칭 위상 전용 일치 필터링 (SPOMF)을 사용하여 달성 한 입니다. FMI-SPOMF 알고리즘의 성능 은 이미지 번역을 처리 할 때 단계 전용 일치 필터링과 동일하거나 유사합니다. 새로운 기술의 중요한 이점은 이미지를 정확하게 회전 및 크기 조정 된 이미지 과 일치시킬 수 있다는 것입니다. 혁신은 FOM 설명 자에 대한 SPOMF의 응용 프로그램으로 높은 식별 능력과 우수한 노이즈 안전성을 보장합니다 ( ). 이 백서에서는 의 새로운 방법과 이산 된 이미지의 구현을 설명합니다.이 이미지는 검색 문제이거나 등록 문제입니다.실용 결과 의료 영상 다양한 애플리케이션 원격 감지, 지문 인식 다중 객체 식별

+0

나는 Matlab을 사용해보고 싶어하지만, 나는 그것에 익숙하지 않다. 나에게 도움이되는 문서 또는 도서관을 제공해 주시겠습니까? 고마워. – user288231

+0

@ user288231 - 사실 내 문서/코드를 모두 잃어 버렸습니다. 몇 년 전 학교 생활을하던 중이었습니다. 나는 그 종이를 발견 할만큼 충분히 기억하고있어서 운이 좋다 ... 미안해! 링크 된 IEEE 논문은 괜찮습니다 (회원이되어야합니다). – Justin

0

또한 일정한 각도 루프 번째 이미지를 회전 각 RMSE 둘 사이의 이미지를 계산할 수 위해 제시 되풀이. 일치 각도는 RMSE가 최소 인 위치입니다. 도움이

# convert images to equal sizes for pixel by pixel comparision 
convert.exe p1.png -resize 73x73! p1.png 
convert.exe p2.png -resize 73x73! p2.png 

# initialize variables 
$min_rmse = 1.0 
$degrees_rotated = -1.0 

# rotate second image by 10 degrees in each iteration 
# and after that measure RMSE between first image and second rotated image 
for ($i=0; $i -le 350; $i+=10) { 
    convert.exe p2.png -rotate $i tmp.png 
    convert.exe tmp.png -resize 73x73! tmp.png 
    $rmse = compare.exe -metric rmse p1.png tmp.png diff.png 2>&1 
    $rmse = ([string] $rmse).split(" ")[1] 
    $rmse = $rmse.replace("(","") 
    $rmse = [double] $rmse.replace(")","") 

    # find rotation angle where RMSE is minimal 
    if ($rmse -lt $min_rmse) { 
     $min_rmse = $rmse 
     $degrees_rotated = $i 
    } 
} 

Write-Host "two images are most similar when second image is rotated by $degrees_rotated deg (rmse is $min_rmse)" 
Write-Host "Press any key to exit ..." 
$host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") 

희망 :

여기 ImageMagick이 아이디어를 구현 powershell 스크립트입니다.
p.s. 위키에 따르면 두 벡터 사이의 RMSE는 두 가지 다른 방식으로 계산할 수 있습니다. 나는 ImageMagick에서 어떤 명령을

compare.exe -metric rmse
명령으로 구현했는지는 모르지만, IM 개발자에게 묻거나 시행 착오를 통해 확인할 수 있습니다.

관련 문제