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

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

直方图规定化的原理,

直方图规定化是指将一幅图象通过灰度变换后,使其具有特定的直方图形式。直方图规定化处理一般可以分为两类:①使图象与某一标准图象具有相同的直方图;②图象具有某一特定函数(比如说高斯函数)形式的直方图。

如下图所示,希望将图象A(x,y)变换为具有特定直方图H3(D)的图象C(x,y)。首先利用直方图均衡化将图象A(x,y)变换为具有平坦直方图的图象B(x,y),再利用第二个灰度变换将B(x,y)变换为C(x,y):

直方图规定化处理的第二种方法,代码举例如下:

% AdvancedGaussian.m

% 定义一个高斯函数。
r = 127;                              
x = -r : r + 1;
sigma = 20;
y = exp(-(x.^2) / (2 * sigma ^ 2));

%im=imread('bg.bmp');  %匹配一个图像的直方图
%y=imhist(im);
y = y / sum(y);        %归一化,使函数符合概率分布的sum(y)==1这样一个规律
plot(y);               %待匹配的直方图

%函数的累积直方图
Q = [];                
for i = 1 : 256  
    if (i == 1)
        Q(i) = y(i);
    else
        Q(i) = Q(i - 1) + y(i);
    end
end

img = imread('F:/personal/2_硕士/1_2_研一下学期/3_图像处理技术(李智)/2017.03.21/0_Equalization/lena512.bmp');
figure;imshow(img)
[m n] = size(img);
hist = imhist(img);       %待处理图像的直方图
p = hist / (m * n);           
figure;plot(p)          %原图直方图

%待处理图像的累积直方图
P = [];                   
for i = 1:256
%     P = [P sum(p(1 : i))];
    if (i == 1)
        P(i)=p(i);
    else
        P(i) = P(i - 1) + p(i);
    end
end

for i = 1 : 256
    tmp{i} = Q - P(i);
    % 因为要找距离最近的点,所以取绝对值
    tmp{i} = abs(tmp{i});         
    % 找到两个累积直方图距离最近的点
    [a index(i)] = min(tmp{i});   
end

imgn = zeros(m, n);
for i = 1 : m
    for j = 1 : n
        %由原图的灰度通过索引映射到新的灰度
        imgn(i, j) = index(img(i, j) + 1) - 1;    
    end
end

imgn=uint8(imgn);
figure;imshow(imgn)
figure;plot(imhist(imgn))       %新图的直方图

 

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