- Алгоритм сбалансированного порогового отсечения гистограммы
-
При обработке изображений, алгоритм сбалансированного порогового отсечения гистограммы [1], используется для бинаризации полутонового изображения. В этом алгоритме предполагается, что изображение содержит пиксели двух классов, принадлежащие фону и переднему плану. Как и Метод Оцу [2] и метод итеративного выбора порога [3], он основан на итеративном нахождении порогового значения, которое разделяет пиксели на данные классы. В этом методе взвешиваются две равные доли гистограммы. Если одна часть перевешивает, то из более тяжелой части удаляется наиболее крайний столбик. Итеративная процедура заканчивается, когда в гистограмме остается только один столбик и соответствующее ему значение интенсивности выбирается в качестве порогового значения.
Учитывая простоту алгоритма, его можно рекомендовать в качестве первого подхода при изучении алгоритмов бинаризации полутоновых изображений.
Алгоритм
Следующая программа на языке Си – это упрощенная версия алгоритма сбалансированного порогового отсечения гистограммы:
int BHThreshold(int[] histogram) { i_m = (int)((i_s + i_e) / 2.0f); // расчет центра весов I_m w_l = get_weight(i_s, i_m + 1, histogram); // вес левой части гистограммы W_l w_r = get_weight(i_m + 1, i_e + 1, histogram); // вес правой части гистограммы W_r while (i_s <= i_e) { if (w_r > w_l) { // правая часть тяжелее w_r -= histogram[i_e--]; if (((i_s + i_e) / 2) < i_m) { w_r += histogram[i_m]; w_l -= histogram[i_m--]; } } else if (w_l >= w_r) { // левая часть тяжелее w_l -= histogram[i_s++]; if (((i_s + i_e) / 2) > i_m) { w_l += histogram[i_m + 1]; w_r -= histogram[i_m + 1]; i_m++; } } } return i_m; }
Иногда алгоритм может давать неоптимальные результаты при обработке сильно зашумленных изображений, поскольку шум может привести к ошибкам при выделении долей гистограммы. Можно значительно ослабить влияние шума, если исключить из рассмотрения непрезентативные столбики гистограммы, расположенные на её концах [4].
Литература
- ↑ A. Anjos and H. Shahbazkia. Bi-Level Image Thresholding - A Fast Method. BIOSIGNALS 2008. Vol:2. P:70-76.
- ↑ Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9: 62–66.
- ↑ Ridler TW, Calvard S. (1978) Picture thresholding using an iterative selection method, IEEE Trans. System, Man and Cybernetics, SMC-8: 630-632.
- ↑ A. Anjos, R. Leite, M. L. Cancela, H. Shahbazkia. MAQ – A Bioinformatics Tool for Automatic Macroarray Analysis. International Journal of Computer Applications. 2010. Number 7 - Article 1.
Внешние ссылки
Категория:- Цифровая обработка изображений
Wikimedia Foundation. 2010.