2012-10-31 4 views
0

이미지의 각 픽셀에서 접선을 찾고 싶습니다. 참고 : 이미지에 흰색 배경이 있고 모양 테두리 색이 블록입니다. 내가이 무슨 짓을 픽셀에 접하는 점을 찾는 방법은 무엇입니까?

, 너 한테

While(true) 
    take pixel 
    if pixel color is black 
      make 3 X 3 matrix => fill the matrix by surrounding pixel color 
      ...means assume white =0 and black=1 then keeping selected pixel 
      at center for 3 X 3 matrix and finding all other value; 
      ----------------------------here i want to find tangent line to selected pixel; 
    end if 
    Move to next pixel. 
End while 

는 머리에 시험을 도와주세요.

답변

0

당신이 찾고있는 것은 아마도 Sobel Operator입니다. 이것은 매트릭스 화소 주변의 주변의 컨볼 루션으로 구현있다 : 다시

-1 0 1 
-2 0 2 
-1 0 1 

하고 :

-1 -2 -1 
0 0 0 
1 2 1 

전화 2 회선의 x 및 y의 결과를 각각.

mag = sqrt(x * x + y * y); 

당신이 검사하고있는 픽셀에 접하는해야 그라디언트의 방향 (: 당신이 그들을 후에는 제곱의 합의 제곱근을 취함으로써 변화의 크기를 얻을 수 있습니다) X를 통해 Y의 아크 탄젠트를 취함으로써 :

tangent = atan2(y/x) 
+0

이 작동하지 않습니다 ...... – govinda

+0

이가 작동하지만 난 각 지점의 정확한 접선을 받고 있지 않다. . . . 하지만 시간과지도에 감사드립니다 ......... 다른 최상의 알고리즘이나 소벨 에지 탐지 알고리즘의 수정 된 버전이 있습니까? ............... @ user1118321 – govinda

+0

내가 5 소들의 5 x 5 행렬을 발견했다. http://www.cim.mcgill.ca/~image529/TA529/Image529_99/assignments/edge_detection/references/sobel.htm ........... 나는 5 X 5 매트릭스를 사용하여 정확한 탄젠트를 얻을 수 있습니까? – govinda

관련 문제