MATLAB对图像进行直方图均衡化处理

任务一:显示图像直方图

自编MATLAB函数文件执行灰度图像的直方图计算,不使用MATLAB自带函数(如hist或imhist)。

程序代码:

function H = my_hist(im)

%H=my_hist(im)的输入im为灰度图像(灰度值0~255),输出H为256维向量

%获取图像尺寸,M=行数,N=列数

[M,N]=size(im);

%初始化直方图为256维全0向量

h=zeros(1,256);

for i=1:1:M

    for j=1:1:N

        for t=0:1:255

            if im(i,j)==t

                h(t+1)=h(t+1)+1;

            end

        end

    end

end

H=h;

end

运行结果:

MATLAB对图像进行直方图均衡化处理_第1张图片  MATLAB对图像进行直方图均衡化处理_第2张图片

程序给出了图像的灰度直方图分布,可以看出图像在两极的分布比较集中。灰度分布较为丰富。

任务二:直方图均衡化

自编MATLAB函数文件执行灰度图像的直方图均衡化,不使用MATLAB成熟函数histeq。

运行结果:

MATLAB对图像进行直方图均衡化处理_第3张图片

直方图前后对比:

MATLAB对图像进行直方图均衡化处理_第4张图片  MATLAB对图像进行直方图均衡化处理_第5张图片

注:有需要任务二源文件的朋友可以联系作者,作者创作不易,希望客官们打赏~(作者联系方式见评论区)

你可能感兴趣的:(MATLAB,图像处理,matlab,开发语言)