آستانه گذاری هیستوگرام متقارن

آستانه گذاری هیستوگرام متقارنA. Anjos and H. Shahbazkia. Bi-Level Image Thresholding - A Fast Method. BIOSIGNALS 2008. Vol:2. P:70-76.  ، روشی بسیار ساده در پردازش تصویر به منظور آستانه گذاری اتوماتیک تصاویر می باشد. این روش همانند روش Otsu Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9: 62–66.  و روش انتخاب آستانه مرحله به مرحله  (Iterative Selection Thesholding Method) Ridler TW, Calvard S. (1978) Picture thresholding using an iterative selection method, IEEE Trans. System, Man and Cybernetics, SMC-8: 630-632.  حد آستانه ای بر اساس هیستوگرام تصاویر استخراج می کند. نحوه عملکرد روش های آستانه گذاری تصاویر بدین صورت است که تصویر به دو کلاس اصلی پس زمینه و پیش زمینه فرض می گردد و روش سعی در یافتن بهترین آستانه برای تقسیم هیستوگرام به دو کلاس می باشد.

روش آستانه گذاری متقارن بدین صورت عمل می کند که هیستوگرام تصویر را از وسط به دو نیم مانند یک ترازو تقسیم کرده و بخش سنگین تر (سمت راست یا چپ) را پیدا می کند. آنگاه از انتهای قسمت سنگین تر آخرین هیستوگرام بار را حذف می نماید. سپس دوباره هیستوگرام از میان به دو قسمت مساوی تقسیم می‌شود و این عمل همچنان ادامه پیدا می کند. این عمل تا زمانی که دو لبه تراوز به یکدیگر برسند اجرا خواهد شد. نحوه عملکرد روش در شکل زیر نمایش داده شده است.

این روش اخیراً در بسیاری از رویکردهای آستانه گذاری خودکار تصاویر به عنوان روشی ساده و مطلوب مطرح گردیده است.

 الگوریتم 
لیست کد ذیل در زبان C الگوریتم کلی روش آستانه گذاری هیستوگرام متقارن را نشان می دهد.این روش ممکن است در تصاویر بسیار نویزی مشکلاتی داشته باشد. این مشکل می‌تواند با در نظر نگرفتن دو انتهای هیستوگرام کمتر گردد.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.

    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;
    }

 نگارخانه 

 منابع 

 پیوند به بیرون 
 ImageJ Plugin 
 Ostsu vs. BHT

 جستارهای وابسته 

 پردازش داده‌ها 
 پردازش اطلاعات
 پردازش علائم
 تشخیص پلاک خودرو
 بینایی رایانه‌ای
 تصویربرداری پزشکی
 آشکارسازی لبه

رده:بخش‌بندی تصویر