চিত্র প্রক্রিয়াকরণে ভারসাম্যপূর্ণ হিস্টগ্রাম থ্রেসহোল্ডিং পদ্ধতি (বিএইচটি)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. এটিও একটি হিস্টগ্রাম ভিত্তিক থ্রেসহোল্ডিং পদ্ধতি। এই পদ্ধতিতে চিত্রটি দুটি প্রধান শ্রেণিতে বিভক্ত: পটভূমি এবং সম্মুখভাগ করা হয়। বিএইচটি পদ্ধতিটি সর্বোত্তম প্রান্তিক স্তরের সন্ধান করার চেষ্টা করে যা হিস্টগ্রামকে দুটি শ্রেণিতে বিভক্ত করে।  ডান|থাম্ব|200x200পিক্সেল| আসল চিত্র। ডান|থাম্ব|200x200পিক্সেল|থ্রেসহোল্ডিং চিত্র থাম্ব|200x200পিক্সেল| পদ্ধতির বিবর্তন। এই পদ্ধতিটি হিস্টোগ্রামের ওজন করে, উভয় পক্ষের মধ্যে ভারী কিনা তা পরীক্ষা করে এবং হালকা হওয়া অবধি ভারী দিক থেকে ওজন সরিয়ে দেয়। ওজন স্কেলের কিনারা পূরণ না হওয়া পর্যন্ত এটি একই অপারেশন পুনরাবৃত্তি করে।  স্বয়ংক্রিয় চিত্র থ্রেসহোল্ডিং বিষয় উপস্থাপনের জন্য এই পদ্ধতি একটি সরল উদাহরণ।   অ্যালগরিদম  সি নোটেশনে লিখিত নিচের তালিকাটি ভারসাম্য হিস্টোগ্রাম থ্রেসহোল্ডিং পদ্ধতির একটি সরল সংস্করণ: int BHThreshold(int[] histogram) {     i_m = (int)((i_s + i_e) / 2.0f); // center of the weighing scale I_m     w_l = get_weight(i_s, i_m + 1, histogram); // weight on the left W_l     w_r = get_weight(i_m + 1, i_e + 1, histogram); // weight on the right W_r     while (i_s <= i_e) {         if (w_r > w_l) { // right side is heavier             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) { // left side is heavier             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; } নিম্নলিখিতটি পাইথন ভাষায় একটি সম্ভাব্য বাস্তবায়ন: def bht(hist, min_count: int = 5) -> int:     """Balanced histogram thresholding."""     n_bins = len(hist)  # assumes 1D histogram     h_s = 0     while hist[h_s] < min_count:         h_s += 1  # ignore small counts at start     h_e = n_bins - 1     while hist[h_e] < min_count:         h_e -= 1  # ignore small counts at end     # use mean intensity of histogram as center; alternatively: (h_s + h_e) / 2)     h_c = int(round(np.average(np.linspace(0, 2 ** 8 - 1, n_bins), weights=hist)))     w_l = np.sum(hist[h_s:h_c])  # weight in the left part     w_r = np.sum(hist[h_c : h_e + 1])  # weight in the right part      while h_s < h_e:         if w_l > w_r:  # left part became heavier             w_l -= hist[h_s]             h_s += 1         else:  # right part became heavier             w_r -= hist[h_e]             h_e -= 1         new_c = int(round((h_e + h_s) / 2))  # re-center the weighing scale          if new_c < h_c:  # move bin to the other side             w_l -= hist[h_c]             w_r += hist[h_c]         elif new_c > h_c:             w_l += hist[h_c]             w_r -= hist[h_c]          h_c = new_c      return h_c   তথ্যসূত্র    বহিঃসংযোগ    ইমেজজে প্লাগইন    ওসু বনাম বিএইচটি  বিষয়শ্রেণী:চিত্র প্রক্রিয়াজাতকরণ