CS/영상처리

[영상처리] Simple Detectors(Edge, Point, Line) - 경계, 선, 점 검출 [컴공과고씨]

시간빌게이츠 2022. 4. 6. 13:30
반응형

앞에서 우리는 1D에 대한 미분을 공부했다.

이번에는 2D에 대한 미분을 공부할 것이다.

2D는 변수가 두 개 이기 때문에 편미분을 이용해주면 된다.

 

2D 미분

X와Y 방향을 따로 미분하면 벡터 값이 나온다.

벡터의 크기를 구하면 얼마나 밝은지에 대한 값이고 아크 탄젠트를 구해주면 X축과 이루는 각 즉, gradiant의 방향을 알 수 있게 되는데 90도에서 이 방향을 빼주면 edge의 방향을 구할 수 있다.

예를 들면

프리윗 마스크를 씌워주는 예이다.

 

 

Simple Edge Detection

 

그림과 같이 2차 미분을 이용한 경계값 추출은 엣지를 얇게 추출이 가능하다.

문제는 실제 세계에서는 잡음들이 많이 섞여져 있기 때문에 위와 같은 깔끔한 그래프는 없다.

실제 세계

이렇기 때문에 edge detection을 할 때는 꼭 smoothing을 해서 잡음을 감소시키고 에지 detection을 해주어야 한다.

그 후 threshold 를 통해 원하는 값을 추출해 더 좋은 에지를 검출을 할 수 있다. 

마스크 종류는 soble, roberts, prewitt(소벨, 로버트, 프리윗) 등을 사용하여 edge detection을 할 수 있다.

 

 

Simple Point Detection

포인트(점)을 검출하는 것은 라플라시안과 thresholding을 결합하면 된다.

point detection

 

 

Simple Line Detection

 - 라플라시안 필터 + thresholding

선이기 때문에 부호가 바뀌는 구간이 2개가 검출되어지게 된다. 이것을 double-line effect라고 한다. 이것을 해결하기 위해서는 양에서 음수 혹은 음수에서 양으로 가는 것을 하나만 선택해주면 보다 얇은 엣지를 추출할 수 있게 된다. 그렇기 때문에 2차 미분을 이용한 마스크를 사용하면 1차 미분을 한 마스크 보다 얇은 엣지를 추출할 수 있게 된다.

 

 

 - Directional Line Detection 

 45도 간격으로 검출하는 디텍터

엣지 검출 방향 추가 설명

 

반응형