본문 바로가기
openCV

[openCV] 에지 검출

by _eunji_ 2020. 1. 29.

Edge pixels : 영상의 픽셀 주변으로 밝기 값이 급격히 변하는 부분, 픽셀

Edges : Edge pixels들의 연속된 집합

빨간색 부분의 밝기 값을 일차원 그래프로 나타낸 것

에지 검출 방법

1. 1차원 함수에 대해 1차 미분 수행하여 에지 검출. 따라서 1차 미분을 했을 때 크기가 0이 아닌 부분을 활용하면 에지 검출이 가능하다.

2. 2차원 영상의 경우, image gradient 사용

  • gradient 란 주어진 데이터가 2차원 데이터라면 그 2차원 데이터 f의 gradient는 x축 방향으로 편미분 하고 , y축 방향으로 편미분 한 값으로 이루어져 있는 벡터이다.
  • gradient 크기 : 미분 값을 제곱해서 더한 후 루트 값을 씌운 것
  • gradient 각도 : arctan x/y값

 

  • gradient 방향은 현재 픽셀에서 가장 급격하게 변하는 방향을 가리킨다.
  • 에지 방향은 gradient 방향과 수직 관계에 있다.
  • gradient와 gradient 방향을 구하면 에지의 방향도 검출 가능 

잡음이 있을 경우 미분값의 크기로 에지를 찾을 수 없기 때문에 가우시안 블러링이나 평균 필터를 이용해 잡음을 제거 한 후 에지 검출을 수행한다.

Sobel operators

좌 : y축 방향 에지,  우 : x축 방향 에지

소벨 마스크를 활용하여 y축 방향 영상의 절댓값과 x축 방향 영상의 절댓값을 더하는 방식으로 gradient 크기를 구할 수 있고 thresholding을 이용하여 에지를 구할 수 있다.

x축 방향 에지를 구하고 y축 방향 에지를 구한 후 더한 것
필터링 한 후  gradient operators을 수행한 것, 건물의 윤곽선 부분에서 에지가 뚜렷하다. 
Thresholding을 적용한 것, 빌딩 건물의 윤곽선 부분에서만 에지 검출

Canny Edge Detector

1. 가우시안 필터를 사용하여 영상 내의 잡음을 없앤다.

2. 소벨 에지 마스크를 활용하여 그라디언트 크기와 각도 계산

3. nonmaxima suppression 수행 -> 그라디언트 방향으로 인접한 픽셀을 찾은 후 현재 픽셀에서 주변 인접 픽셀보다 그라디언트 매그니튜드 성분이 작으면  제거 , 즉 최댓값만 남기고 나머지 값은 삭제하는 것

4. double thresholding

  • 𝑀 𝑥, 𝑦 ≥ Th -> edge
  • 𝑀 𝑥, 𝑦 < TL -> non-edge
  • Otherwise -> 에지라고 판별된 픽셀과 연결되어 있다면 에지라고 간주

소벨 에지보다 적은 수의 픽셀만 에지라고 판단된 것을 알 수 있다

 

 

 출처 - 컴퓨터 비전 한동대학교 황성수

 http://www.kocw.net/home/cview.do?cid=1b1f5b73413060b5

 

'openCV' 카테고리의 다른 글

[openCV] 얼굴 검출  (0) 2020.01.31
[openCV] 선 검출  (0) 2020.01.29
[openCV] 형태학적 연산  (0) 2020.01.29
[openCV] 동영상 분할  (0) 2020.01.18
[openCV] 영상 분할  (0) 2020.01.18

댓글