2012-05-01 6 views
1

가장자리가 두꺼운 검정색 경계선이있는 7x10 눈금의 아이폰 (또는 괜찮은 종류의 카메라)으로 찍은 사진을 찍어야하는 프로그램이 있습니다. 이 이미지는 오른쪽 또는 왼쪽으로 회전하여 수신 할 수 있습니다 (비뚤어 짐을 걱정할 필요가 없습니다). 이미 원래 상태의 그리드 이미지가 있지만, 찍고있는 그림을 가져 와서 "완벽한/원래"상태로 회전해야합니다.이미지를 원래 상태로 되돌리기

아이디어 1 : 성능 돼지/나쁜 결과

임계 내가받은 사진을 내가 이미 가지고있는 완벽한 그리드 이미지. 각 픽셀을 0 회전으로 비교하고 총점을 얻어 저장하십시오. 증분 이미지를 1에서 359만큼 회전시킵니다. 가장 낮은 점수는 그림을 원래 상태로 되 돌리는 데 필요한 회전입니다.

아이디어 2 :이

임계 내가받은 사진을 내가 이미 가지고있는 완벽한 그리드 이미지를하는 것에 대해 이동하는 방법을 아직 확실. 그림의 중심을 가로 지르는 선을 수직 및 수평으로 그립니다. 세로 및 가로 선이 통과 한 검정 픽셀 수를 기반으로 회전을 찾습니다. 이것은 삼각법의 어떤 종류를 요구할 것입니다.

누구나이 아이디어를 얻기위한 다른 아이디어가 있습니까?

올바른 방향으로 나를 가리키면 도움이 될 것입니다.

감사합니다.

+0

Trig는 쉽습니다 ... SOHCAHTOA : http://en.wikipedia.org/wiki/Trigonometry를 기억하십시오. –

+0

그래, 이해 하겠지만, 빗변과 90도 각도 만 알면 어떻게하면 좋을까요? 다른 두 거리를 찾아 시타 (원래 상태로 돌아갈 수있는 회전 각도)를 찾으십시오. –

답변

2

가로 및 세로 선 한 개를 그리는 대신 두 개의 가로 선을 그립니다 (예 : 그림의 1/3). 이 선들의 왼쪽 절반 만보고 각각의 경로에 얼마나 많은 검은 색 픽셀이 있는지 계산하십시오 (a1a2). 또한 두 개의 빨간색 선 사이의 거리를 추적해야하므로 픽셀 수인 d을 추적해야합니다.

alpha=atan2((a2-a1),d)

alpha하여 반 시계 회전을 적절한 배향으로 영상의 흰색 영역을 가져올 것이다 : 도면에 기호로

Diagram of the problem, as I understand it

위의 원하는 각도이다.

+0

나는이 방법이 잡음에 취약하다는 것을 잊어 버렸습니다. 'd'가 증가함에 따라 오류는 줄어들지 만'd'를 너무 크게 선택하면 메서드가 전혀 작동하지 않습니다 (빨간색 선이 올바른면과 교차하지 않음). 또한 그림의 일부에는 검은 색 픽셀이있어 측정을 중단시킬 수 있습니다. 두 번째 단계로, 'd'의 다른 값과 이미지의 4 개의 다른면에 대해이 절차를 여러 번 반복 한 다음 측정 값의 평균을 구하고 외곽 값을 버리는 선택 단계를 수행 할 수 있습니다. – vlsd

관련 문제