|
|
에지 화소좌표 밝기값 각도, 각도차 -------------------------------------------- (10,10) 255 20 0 (11,10) 255 24 4 ... |
* 도형 인식 방법1
(1) 모든 에지들을 근접한 점들로 정렬한다.
(2) 각 에지 점들 사이의 각도를 계산한다.
(3) 에지 점들 사이의 각도차를 계산한다.
(4) 각도차의 변화량으로 원과 세모를 구분한다.
- 세모인 경우 모서리가 꼭 급격한 각도가 아닐 수 있다. 따라서 좀 지난 후 비교하는게 좋다.
* 도형 인식 방법 2
(1) 에지 점들을 이용하여 중심점을 찾는다.
(2) 중심 점으로부터 각 에지들의 거리를 계산한다.
(3) 거리들의 차이 (표준편차) 를 구하여 비교한다. (삼각형은 거리의 차이가 크다.)
* 각도 구하기 (http://sukhwan.tistory.com/49, http://zzoyu.tistory.com/73)
degree = atan2( (float)B.y - A.y, (float)B.x - A.x ) * 180 / 3.1415f;
* atan()함수와 atan2()함수의 차이
#include <math.h>
double atan(double x);
double atan2(double y, double x);
atan() 함수는 -π/2에서 π/2의 라디안 범위에서 값을 리턴한다.
atan2() 함수는 -π에서 π의 라디안 범위에서 값을 리턴한다. atan2() 함수의 두 인수가 0인 경우 함수는 errno를 EDOM으로 설정하고 0의 값을 리턴한다.
|
|