2012-03-07 6 views
3

밝혀졌습니다. 내가 잘하고 싶은 부분을 설명하지 않기 때문에 전체 질문을 다시 작성하고 설명을 돕기 위해 그래픽을 추가 할 것입니다.이미지의 두 점 사이의 픽셀을 계산하십시오.

나는 android/iPhone 용 앱을 디자인하고 있습니다. 나는 이미 그것을 위해 하나의 알고리즘을 설계했지만, 다음에 붙어있다. 내가하고자하는 것은 이미지 (두 이미지, 아이폰/안드로이드가 찍은 사진)에 두 개의 가로선을 놓은 다음 라인이 어떤 픽셀에 있는지를 계산하여 그 사이의 픽셀 수를 계산하는 것입니다. 즉,

http://i.stack.imgur.com/41vS1.png

는 다음과 같이 이미지에 두 개의 수평 라인 어디서나 장소 :

http://i.stack.imgur.com/ne4tV.png

내가 계산하려는 것은 Y의 값이, 또는 얼마나 많은 이 이미지를 가지고 세로 픽셀은 두 선 사이에 있습니다. 이렇게하려면 두 라인이 어떤 픽셀인지 알아야합니다. 수평선이 둘 다 높이가 1 픽셀 밖에되지 않는다고 가정하면 이미지의 어떤 픽셀이 선 위에 놓여 있는지 알아내는 데 사용할 것입니다. 나는. 각 수평선에서 y 절편 (y = mx + c) 또는 c의 값은 얼마입니까? 내가 더 의미하는 것을 설명하기 위해 이미지가 그래프라고 가정 해 봅시다. 각 픽셀은 1의 값과 같으므로 1920x2560의 해상도를 가진 이미지의 경우 y 축의 최대 값은 1920이고 x 축의 최대 값은 2560이됩니다. 어떻게 계산할 알고리즘을 설계할까요? 두 줄의 y 절편은?

+0

@alextsc, 아무 것도 지금까지 ... 나는 픽셀의 수와 높이를 계산하는 객체로부터의 거리에 따라 높이 (m)를 계산하는 알고리즘을 개발했습니다. 나는 전체 이미지의 픽셀 높이와 너비에 대한 메타 데이터를 읽는 것 외에 이미지의 픽셀을 계산하는 방법에 대해서도 분실했다. – Vigi

+1

피타고라스 수식을 찾고 있습니까?;) 거리는 √ (높이^2 + 너비^2)입니다. – KarlKarlsom

답변

3
두 지점 (Pythagora) 사이

의 거리 :

dx = x1 - x2; 
dy = y1 - y2; 

dist = sqrt (dx*dx + dy*dy); 

거리 둘 사이의 수평 라인 :

d = y1 - y2; 

당신의 선이 다음 y1 = k1x + n1 및 로 정의 된 경우 (그들이있어 수평, k1k2이 0 인 경우) 사이의 거리가 n2 - n1입니다.

편집 : 여러분이 질문을 편집 한 후에는 좀 더 이해가됩니다. 그러나 여전히 : 사용자 (또는 사용자)가 라인을 추가하기 때문에 항상 코드 을 알고 있습니다. 최종 좌표는 다음과 같습니다

호선 : {(0, Y1) :(picture.width, Y1)} 2 호선 : {(0, Y2) :(picture.width, Y2)} 거리 : | Y2 -y1 |

그들은 둘 다 가로이므로 절대 절대로 교차하지 않습니다.

적절한 공간에 줄 바꿈 코드의 y1 및 y2에 대한 참조를 유지해야합니다. 귀하의 질문은 안드로이드와 iOS 용이므로 대답은 MVC의 model에 해당하는 코드 부분입니다.

+0

방금 ​​내 질문을 편집했습니다.이 질문은 어쨌든 해결할 수있는 제 질문의 두 번째 부분에 대한 답변입니다. 어쨌든 덕분입니다. – Vigi

+0

@Vigi : 질문은 아직 명확하지 않습니다. 이미지를 스캔하고이 두 라인을 찾는 그래픽 알고리즘을 찾고 있습니까? –

+0

좋아, 나는 내 질문에 대해 다시 말했어. 어쩌면 더 이해할 수 있을까? – Vigi

관련 문제