본문 바로가기
Computer vision

[Computer vision] 05. 이진영상

by @__100.s 2021. 9. 16.
반응형

이진화와 오츄 알고리즘

  • 명암 영상은 [0 ~ 255] 값을 가진 것이다. gray image라고 표현한다.
  • 명암 영상을 0과 255의 두가지 값만 가진 영상으로 변환하는 것을 이진화, 이렇게 만들어진 이미지를 이진 영상 (binary image)라고 부른다.
  • 영상을 어떻게 이진화 할 것인가 → 오츄 알고리즘

이진화

  • 명암 영상을 흑과 백만 가진 이진 영상으로 변환

  • 명암 영상 (gray image)을 이진 영상(binary image)으로 만드는 것을 이진화라고 표현한다.
  • 임계값 (threshold) 를 두고, 그것보다 큰 화소는 1, 그렇지 않은 화소는 0으로 변환

임계값 방법

  • 두 봉우리 사이의 계곡을 임계값 T로 결정
  • 자연 영상에서는 계곡 지점 결정이 어려움

오츄 알고리즘

  • 이진화했을 때 흑 그룹과 백 그룹 각각이 균일할수록 좋다는 원리에 근거
  • 균일성은 분산으로 측정 (분산이 작을수록 균일성 높음)
  • 분산의 가중치 합 Vwithin(.)을 목적 함수로 이용한 최적화 알고리즘


오츄 알고리즘의 개념은 주어진 히스토그램을 임계값 기준으로 두 집합의 화소로 나누었을 때, 각 집합의 명암 분포가 균일할수록 좋다. (왼쪽 오른쪽 균형이 잘 맞을수록 좋다.)라는 개념을 가지고 임계값을 만들겠다는 게 오츄 알고리즘이다.

왼쪽과 오른쪽에 대한 분산값을 구한 다음, 그 분산 값이 균일한 특성을 가질 수 있도록 하는 t값을 정하자.

 

t-1 번째의 계산 결과를 t번째에 활용하여 빠르게 계산

연결요소

  • 이진 영상을 살펴보면 서로 연결된 화소의 집합이 여럿 나타난다. 이들 집합 각각을 연결요소라 부른다.
  • 연결 요소들은 보통 별도로 다루기 때문에, 이들 각각에 고유한 번호를 라벨링 해주어야 한다.

화소의 모양과 연결성

  • 화소를 표현하는 방법은 여러 가지가 있다.
  • 2차원 영상에서 화소를 나타내는 가장 일반적인 방법은 사각형이다.
    • 원은 빈 공간이 생기는 문제가, 육각형은 좌표를 지정하기가 어렵다는 문제가 있기 때문이다.

  • 위치에 대해서 4방향, 8방향의 픽셀만 나의 이웃으로 판단하는 것을 각각 4-연결성, 8-연결성이라고 말한다.
  • 4-연결성은 계산의 효율성이 좋다. 주변의 4개만 확인하면 되기 때문이다. 하지만 주변에 있음에도 불구하고 연결성을 고려하고 있지 않는 부분도 있기 때문에, 인접해있다고 하더라도 떨어져 있는 덩어리처럼 보일 수 있다.
  • 8-연결성은 반대로 계산의 효율성은 떨어진다. 하지만 주변에 인접한 픽셀의 연결성을 모두 고려한다.

연결요소 번호 붙이기

  • 4-연결성과 8-연결성

  1. 1을 만날 때까지 픽셀을 (0, 0) → (M-1, N-1) 방향으로 이동시킨다.
  2. 1을 만나면 1이라는 라벨을 붙여준다. 이후 4-연결성일 때는 해당 픽셀 기준으로 [i-1][j], [i][j-1], [i][j+1], [i+1][j]에 1이 있는지 확인한다.
  3. mask image ) 이미 처리된 pixel은 mark를 하고 더 이상 고려하지 않는다.
  4. Label의 영역이 끝나면 다시 영상을 처음부터 읽어나간다. 다시 image [i][j] == 1을 만나면 다음 라벨인 2를 붙여나간다.
  5. 영상을 다 읽을 때까지 반복한다.

범람 채움

  • 위와 같이 연결요소를 찾아 번호를 붙이는 것을 범람 채움이라고 한다.
  • 이차원 영상에서 가장자리 픽셀을 기준으로 4-연결성, 8-연결성을 사용하면 픽셀에 없는 곳에서 값을 읽어오려고 하게 된다. → 스택 오버플로우 발생 위험
    • 해결 1) 영상의 가장자리 픽셀을 제외한 안쪽 픽셀만을 탐색한다. 4-연결성이 되었든, 8-연결성이 되었든 밖으로 빠져나갈 일이 없다.
    • 해결 2) 2차원 영상의 테두리에 0으로만 이루어진 픽셀을 둘러준다. → padding

스택 오버플로우 위험

열 단위로 처리하는 알고리즘

참고

 

반응형