호모 그래피가 정상인지 확인하는 데 문제가 있습니다.
올바른 호모 그래피를 확인하는 알고리즘은 누군가에게 관심이있을 수 있으므로 여기에 적어 두겠습니다.
1) 꼭짓점 좌표를 가진 사변형 를 생성합니다 (균일 한 좌표로).A B D C
A:B:C:D:(−w/2,−h/2,1.0)(w/2,−h/2,1.0)(−w/2,h/2,1.0)(w/2,h/2,1.0)
여기서 는 각각 이미지의 너비와 높이입니다. 전체 이미지 프레임 (직사각형)이 볼록 사변형으로 변환되면 그 안에있는 볼록 사변형도 "정확하게"변환됩니다.w,h
2) 모든 정점이 계산 된 호모 그래피 (예 : )를 사용하여 변환되는 변환 된 사변형 를 만듭니다 . 이제부터는 모든 점이 비균질 좌표로 변환됩니다.A′B′D′C′C′=HC
3) 대각선의 파라 메트릭 표현을위한 계산 벡터 , :u⃗ v⃗
d1:d2:A+(D−A)s=A+u⃗ sB+(C−B)t=B+v⃗ t
대각선의 교차점은 에서 나옵니다 .d1=d2
t=1d[(By−Ay)u⃗ x−(Bx−Ax)u⃗ y]
s=1d[(Ax−Bx)v⃗ y−(Ay−By)v⃗ x]
그러면 볼록 사변형은 충족시킵니다 .s,t∈(0,1)
실제로, 비 볼록 및 변성 사변형을 피할뿐만 아니라 3 개의 점이 동일 선상에있을 때와 같이 거의 변성되는 것을 피하기 위해 퍼지 인자 를 도입 할 수 있다. 따라서 테스트는 와 같이 수정 될 수 있습니다 . 여기서 lambda는 작은 수입니다 (예 : ).λ = 0.01s,t∈(λ,1.0−λ)λ=0.01
위의 알고리즘에서 수정 된 오래된 문제 :
나는 여기에서 문제를 발견했습니다-특정 호모 그래피가 있으면 테스트가 더 작은 사변형에 대해서는 통과 할 수 있지만 더 큰 것은 아닙니다. 이것이 일부 "불량한"상동이 통과 한 이유입니다.
녹색 사각형은 소스 이미지를 나타내고 주황색은 변환 된 이미지입니다. 보시다시피 왼손은 볼록하지만 소스가 클수록 변형이 시작됩니다.
마지막으로 더 큰 소스는 비 수렴 사변형을 생성합니다.
스케일링에 실수를했습니다. 균질 좌표 은 및 방향으로 스케일 되었지만 으로 스케일되었습니다 . 이것이 동일한 변환이 다른 사변형을 생성 한 이유입니다.x y w(x,y,w)xyw
그에 따라 알고리즘을 수정했습니다.