MMBEBHE代码及逐行讲解

input_image = imread('图片地址.tif');
% Step 1 计算每个阈值级别的 AMBE
    hist = imhist(input_image);  % 计算直方图 
    total_pixels = numel(input_image);% 获取图像中的总像素数n
    ambe_values = zeros(256, 1); % 初始化数组以便储存AMBE的值

    % 根据阈值将输入的直方图一分为二
        for threshold =[]
            lower_hist = hist(1:threshold + 1);
            upper_hist = hist(threshold + 2:end);

     % 检查是否有任何直方图为空       
            if isempty(lower_hist) || isempty(upper_hist)
                ambe_values(threshold + 1) = inf; %将AMBE设置为无限大 
            else
                lower_cdf = cumsum(lower_hist);
                upper_cdf = cumsum(upper_hist);% 计算nk

                % 按像素总数归一化Pr(rk)=nk/n
                lower_cdf_normalized = lower_cdf / total_pixels;
                upper_cdf_normalized = upper_cdf / total_pixels;

                % 计算两个区域的平均强度
                mean_lower = sum((0:threshold) .* lower_hist) / sum(lower_hist);
                mean_upper = sum((threshold + 1:255) .* upper_hist) / sum(upper_hist);

                % 计算绝对平均亮度误差 (AMBE)
                ambe_values(threshold + 1) = abs(mean_upper - mean_lower);
            end
        end

% STEP 2 找到产生最小 MBE 的阈值水平 XT
[~, optimal_threshold] = min(ambe_values);
XT = optimal_threshold - 1; 

% Step 3 根据找到的 XT将输入直方图一分为二,独立均衡化
% 根据最佳阈值分割图像
lower_region = input_image <= XT;
upper_region = input_image > XT;

% 两个区域单独直方图均衡化
lower_eq = histeq(input_image(lower_region), 256);
upper_eq = histeq(input_image(upper_region), 256);

% 合并两个均衡化区域得出最终结果
result_image = input_image;
result_image(lower_region) = lower_eq;
result_image(upper_region) = upper_eq;

% 显示最终图像&直方图
figure
imshow(input_image)
title('原图像');
figure
imshow(result_image)
title('图像MMBEBHE的结果');
figure
imhist(input_image);
title('原图像的直方图');
figure
imhist(result_image);
title('图像MMBEBHE的直方图');

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值