균형 히스토그램 임계값 지정

Balanced histogram thresholding

이미지 처리에서 균형 히스토그램 임계값 지정 방법([1]BHT)은 자동 이미지 임계값 지정에 사용되는 매우 간단한 방법이다.오쓰의 방법이나[2] 반복 선택 임계값 방식과 마찬가지로 히스토그램 기반 임계값 방식이다.[3]이 접근방식은 이미지가 두 가지 주요 클래스로 구분된다고 가정한다.배경전경.BHT 방법은 히스토그램을 두 클래스로 나누는 최적의 임계값 레벨을 찾으려고 한다.

원본 이미지
임계값 이미지.
방법의 진화.

히스토그램의 무게를 재어 양쪽 중 어느 쪽이 더 무거운지 확인한 뒤 라이터가 될 때까지 무거운 쪽에서 무게를 뺀 방식이다.체중계의 가장자리가 만날 때까지 같은 동작을 반복한다.

단순성을 고려할 때, 이 방법은 자동 영상 임계값 지정의 주제를 제시할 때 첫 번째 접근법으로서 좋은 선택이다.

알고리즘.

다음 목록은 C 표기법으로 균형 잡힌 히스토그램 임계값 지정 방법의 단순화된 버전이다.

인트로 BHThreshold(인트로[] 히스토그램) {     i_m = (인트로)((i_s + i_e) / 2.0f); // 체중계 I_m의 중심     w_l = get_weight(i_s, i_m + 1, 히스토그램); // 왼쪽 W_l에 무게     w_r = get_weight(i_m + 1, i_e + 1, 히스토그램); // 오른쪽 W_r에 무게     하는 동안에 (i_s <= i_e) {         만일 (w_r > w_l) { // 오른쪽이 더 무겁다.             w_r -= 히스토그램[i_e--];             만일 (((i_s + i_e) / 2) < i_m) {                 w_r += 히스토그램[i_m];                 w_l -= 히스토그램[i_m--];             }         } 다른 만일 (w_l >= w_r) { // 왼쪽이 더 무겁다.             w_l -= 히스토그램[i_s++];              만일 (((i_s + i_e) / 2) >= i_m) {                 w_l += 히스토그램[i_m + 1];                 w_r -= 히스토그램[i_m + 1];                 i_m++;             }         }     }     돌아오다 i_m; } 

Python 언어로 가능한 구현은 다음과 같다.

반항하다 bht(히스, min_count: 인트로 = 5) -> 인트로:     """균형 히스토그램 임계값 조정."""     n_bins = (히스)  # 1D 히스토그램 가정     h_s = 0     하는 동안에 히스[h_s] < min_count:         h_s += 1  # 시작 시 작은 카운트 무시     h_e = n_bins - 1     하는 동안에 히스[h_e] < min_count:         h_e -= 1  # 마지막에 작은 카운트 무시     # 히스토그램의 평균 강도를 중심으로 사용; 대안으로: (h_s + h_e) / 2)     h_c = 인트로(둥글게(np.평균의(np.빈 공간(0, 2 ** 8 - 1, n_bins), 역기=히스)))     w_l = np.합계를 내다(히스[h_s:h_c])  # 왼쪽 무게     w_r = np.합계를 내다(히스[h_c : h_e + 1])  # 오른쪽 무게      하는 동안에 h_s < h_e:         만일 w_l > w_r:  # 왼쪽 부분이 무거워졌다.             w_l -= 히스[h_s]             h_s += 1         다른:  # 오른쪽 부분이 무거워졌다.             w_r -= 히스[h_e]             h_e -= 1         new_c = 인트로(둥글게((h_e + h_s) / 2))  # 체중계의 중심을 다시 잡는다.          만일 new_c < h_c:  # 빈을 반대편으로 옮긴다.             w_l -= 히스[h_c]             w_r += 히스[h_c]         엘리프 new_c > h_c:             w_l += 히스[h_c]             w_r -= 히스[h_c]          h_c = new_c      돌아오다 h_c 

참조

  1. ^ A. 안조스와 H.샤바즈키아.Bi-Level 이미지 임계값 지정 - 빠른 방법.바이오시그널스 2008.Vol:2. P:70-76.
  2. ^ 오쓰 노부유키(1979년)."회색 수준 히스토그램에서 임계값 선택 방법".IEEE 트랜스.시스템스, 사이버 9: 62–66
  3. ^ Ridler TW, Calvard S. (1978) 반복 선택 방법 IEEE Trans를 사용한 그림 임계값.시스템, 맨과 사이버네틱스, SMC-8: 630-632.

외부 링크