图像处理技术课第二次试验(1)——图像的均衡化处理
图像处理技术课第二次试验(1)——图像的均衡化处理
天蚕宝衣 发表于9个月前
图像处理技术课第二次试验(1)——图像的均衡化处理
  • 发表于 9个月前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

% Equalization.m

clear
%一,读取图像
originalpicture = imread('F:/personal/2_硕士/1_2_研一下学期/3_图像处理技术(李智)/2017.03.21/0_Equalization/lena512.bmp');              % 读入JPG彩色图像文件
imshow(originalpicture);                                  % 显示出来

%二,绘制直方图
[m, n] = size(originalpicture);                             % 测量图像尺寸参数
GP = zeros(1, 256);                            % 预创建存放灰度出现概率的向量
% 通过循环计算每级灰度出现的概率,将其存入GP中相应位置
for k = 0 : 255
    GP(k + 1) = length(find(originalpicture == k)) / (m * n);     
end

figure, bar(0 : 255, GP, 'g');                % 绘制直方图
title('原图像直方图');
xlabel('灰度值');
ylabel('出现概率');

% 三,直方图均衡化
% 创建新的灰度级概率表,将灰度级概率进行累加,使灰度级概率的峰值变宽,图像变得更加细腻。
% S1 = zeros(1, 256);
% for i = 1 : 256
%     for j = 1 : i
%         S1(i) = GP(j) + S1(i);                   % 计算Sk
%     end
% end


% 直方图均衡化
% 创建新的灰度级概率表,将灰度级概率进行累加,使灰度级概率的峰值变宽,图像变得更加细腻。
s1 = zeros(1, 256);
for i = 1 : 256
    for j = 1 : i
        s1(i) = GP(j) + s1(i);                   
    end
end

% 将灰度级进行映射。
% S2 = round((S1 * 256) + 0.5);                    % 将Sk归到相近级的灰度
% 
% for i = 1 : 256
%     GPeq(i) = sum(GP(S2 == i));                  % 计算现有每个灰度级出现的概率
% end

% 将灰度级进行映射。
newgray = round((s1 * 256) + 0.5);                

for i = 1 : 256
    % 计算现有每个灰度级出现的概率
    GPeq(i) = sum(GP(newgray == i));               % #ok<SAGROW>
end

figure, bar(0 : 255, GPeq, 'b');                   % 显示均衡化后的直方图
title('均衡化后图像的直方图');
xlabel('灰度值');
ylabel('出现概率');

% 四,图像均衡化
equalizationpicture = originalpicture;
for i = 0 : 255
    % 将各个像素归一化后的灰度值赋给这个像素
    equalizationpicture(find(originalpicture == i)) = newgray(i + 1);            
end
figure, imshow(equalizationpicture);                            % 显示均衡化后的图像
title('均衡化后图像');
imwrite(equalizationpicture, 'PicEqual.bmp');

 

共有 人打赏支持
粉丝 16
博文 222
码字总数 146332
×
天蚕宝衣
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: