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

از ویکی‌پدیا، دانشنامهٔ آزاد

آستانه گذاری هیستوگرام متقارن[۱] (به انگلیسی: Balanced histogram thresholding) (اختصاری BHT)، روشی بسیار ساده در پردازش تصویر به منظور آستانه گذاری اتوماتیک تصاویر می باشد. این روش همانند روش ‎Otsu [۲] ‎ و روش انتخاب آستانه مرحله به مرحله ‎ (Iterative Selection Thesholding Method) [۳] ‎ حد آستانه ای بر اساس هیستوگرام تصاویر استخراج می کند. نحوه عملکرد روش های آستانه گذاری تصاویر بدین صورت است که تصویر به دو کلاس اصلی پس زمینه و پیش زمینه فرض می گردد و روش سعی در یافتن بهترین آستانه برای تقسیم هیستوگرام به دو کلاس می باشد.

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

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

الگوریتم[ویرایش]

لیست کد ذیل در زبان C الگوریتم کلی روش آستانه گذاری هیستوگرام متقارن را نشان می دهد.این روش ممکن است در تصاویر بسیار نویزی مشکلاتی داشته باشد. این مشکل می‌تواند با در نظر نگرفتن دو انتهای هیستوگرام کمتر گردد.[۴]

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

نگارخانه[ویرایش]

منابع[ویرایش]

  1. A. Anjos and H. Shahbazkia. Bi-Level Image Thresholding - A Fast Method. BIOSIGNALS 2008. Vol:2. P:70-76.
  2. Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9: 62–66.
  3. Ridler TW, Calvard S. (1978) Picture thresholding using an iterative selection method, IEEE Trans. System, Man and Cybernetics, SMC-8: 630-632.
  4. 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.

پیوند به بیرون[ویرایش]

جستارهای وابسته[ویرایش]