分享

matlab中直方图规定化(直方图匹配)的单映射 – MATLAB中文论坛

 quasiceo 2016-01-15
matlab写的一个直方图规定化中的单映射程序,大家可以借鉴下

clc;
clear;
I=imread('e:\2.bmp');
figure,subplot(321),imshow(I);
title(‘原始图picture1’);
New=I;
L=256; %灰度值
[m1 n1]=size(I);              %计算图像数据矩阵的行列数
Hi=zeros(L,1);                 % 存储源图像直方图数据
for i = 1:m1
    for j = 1:n1
        Hi(I(i,j)+1)=Hi(I(i,j)+1)+1;  %获取像素灰度级
    end
end
% 计算直方图概率统计
Pi=zeros(L,1);% 存储原图像直方图概率数据
for k=1:L
    Pi(k)=Hi(k)/(m1*n1);
end
subplot(323),plot(Pi);
title('原始图直方图Pi');
% 计算累积直方图
RHi=zeros(L,1);% 存储原图像累积直方图数据
RHi(1)=Pi(1);
for k=2:L
    RHi(k)=RHi(k-1)+Pi(k);
end
%subplot(325),plot(RHi);
%title('原图累积直方图RHi');

% 匹配图
J=imread('e:\1012.bmp');
subplot(322),imshow(J);
title('匹配图');
[m2 n2]=size(J);
Hj=zeros(L,10);                 % 存储匹配图直方图数据
for i = 1:m2
    for j = 1:n2
        Hj(J(i,j)+1)=Hj(J(i,j)+1)+1; % 获取匹配图像素灰度级
    end
end
% 计算直方图概率统计
Pj=zeros(L,1);% 存储匹配图直方图概率数据
for k=1:L
    Pj(k)=Hj(k)/(m1*n1);
end
subplot(324),plot(Pj);
title('匹配图的直方图Pj');
% 计算累积直方图
RHj=zeros(L,1);% 存储匹配累积直方图数据
RHj(1)=Pj(1);
for k=2:L
    RHj(k)=RHj(k-1)+Pj(k);
end
%subplot(326),plot(RH2);
%title('匹配图累积直方图RH2');

% 计算原图像与匹配图像累积直方图数值的差的绝对值
double ScMin=zeros(256,256);
for y=1:L
    for x=1:L
        ScMin(x,y)=abs(RHi(y)-RHj(x));
    end
end

% 建立SML单映射
HisM=zeros(L:1);
for k=1:L
    min = 0;
    minV=ScMin(1,k);
    for t=1:L
        if(minV>ScMin(t,k))
            minV=ScMin(t,k);
            min = t-1;
        end
    end
    HisM(k)= min;
end

% 将原图的每个像素灰度转换为映射对应的灰度
for x = 1:m1
    for y = 1:n1
        Num = double( I(x,y))+1;
        if Num==i
            New(x,y)=HisM(i);
        end
    end
end
subplot(325),imshow(New),title('匹配后图像');
% 计算直方图匹配后的直方图
Hd=zeros(L,10);                 % 存储匹配后直方图数据
for i = 1:m2
    for j = 1:n2
        Hd(New(i,j)+1)=Hd(New(i,j)+1)+1; % 获取像素灰度级
    end
end
% 计算直方图概率统计
Pd=zeros(L,1);% 存储匹配后直方图概率数据
for k=1:L
    Pd(k)=Hd(k)/(m1*n1);
end
subplot(326),plot(Pd),title('匹配后直方图');

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多