【数字图像处理】MATLAB实现线性对比度展宽

线性对比度展宽的MATLAB实现


实现程序如下图所示:

% 线性对比度展宽示例
% 设置参数
function [G]=dip(ImPath,fa,fb,ga,gb)
F = imread(ImPath); % 读入图像到矩阵F
F = rgb2gray(F); % 图像变为灰度图像
[m,n] = size(F); % 得到F的行列数m,n
G = zeros(m,n);  % 初始化输出矩阵G
for i=1:m
    for j=1:n
        if(F(i,j)<fa)
            G(i,j)=(ga/fa)*F(i,j);
        elseif(F(i,j)<fb)
            G(i,j)=((gb-ga)/(fb-fa))*(F(i,j)-fa)+ga;
        else
            G(i,j)=((255-gb)/(255-fb))*(F(i,j)-fb)+gb;
        end
    end
end
figure,imshow(uint8(F));title('原图');
figure,imshow(uint8(G));title('线性对比度展宽后的图像');
end

命令行窗口输入如下代码:

ImPath='img\pict1.png';  % 路径设置
fa = 5; fb = 30; 
ga = 80; gb = 100;
[G]=dip(ImPath,fa,fb,ga,gb);

原图是在黄昏时段拍摄的,由于时间偏晚,拍摄下来的场景不够好。利用MATLAB进行对比度展宽处理后,画面的效果明显得到改善。
【数字图像处理】MATLAB实现线性对比度展宽_第1张图片

你可能感兴趣的:(学业专栏,#,数字图像处理,MATLAB,matlab)