使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强

目的:

1、读出rice.png文件,观察图像数据,并尝试修改图像数据矩阵的值,再将图像显示出来,观察图像颜色变换;

2、显示rice.png图像的灰度直方图,对其做对比度增强处理即调整其灰度值,显示调整后的灰度直方图;

原图:

使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强_第1张图片

(rice.png文件)

代码:

close all;

clear;

clc;

image=imread('rice.png');              %读取与代码同一文件下的rice.png文件,或换成绝对路径

figure(1);

subplot(1,2,1);

imshow(image);                             %显示rice.png图像

title('rice.png原图');

image_data=imfinfo('rice.png');      %读取rice.png图像信息,在工作区image_data中查看

image_1=imread('rice.png');

for i=123:178

        for k=23:78

                image_1(i,k)=256;          %修改123行23—78列到178行23—78列图像数据矩阵的值为256【注1】

        end

end

figure(1);

subplot(1,2,2);

imshow(image_1);                         %显示修改图像数据矩阵后的图像

title('修改图像数据矩阵的部分值');

figure(2);

subplot(1,2,1);

imhist(image);                               %显示rice.png的灰度直方图

title('rice.png的灰度直方图');

xlabel('灰度值');

ylabel('像素的概率密度');

imageCE=imadjust(image,[0.20,0.70],[]);%对原图rice.png进行对比度增强处理【注2】

figure(2);

subplot(1,2,2);

imhist(imageCE);                          %显示对比度增强后图像的灰度直方图

title('rice.png对比度增强后的灰度直方图');

xlabel('灰度值');

ylabel('像素的概率密度');

figure(3);

subplot(1,2,1);

imshow(image);                            %显示原图

title('原图');

subplot(1,2,2);

imshow(imageCE);                      %显示对比度增强后的图片

title('对比度增强');

【注1】:灰度值从0—256颜色由黑变白由深入浅;

【注2】:imadjust函数:

语法格式:J=imadjust(I,[low_in,hige_in],[low_out,high_out]);

代码中选择[0.20,0.70]原因:

由原图rice.png的灰度直方图得,像素的灰度值主要集中在[50,180]之间(灰度值为[1,256]),将其调整(换算)到[0,1]之间,灰度值主要集中在[0.20,0.70]之间;

imadjust(image,[0.20,0.70],[])中“[]”表示对全局起作用;

使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强_第2张图片

运行结果:

使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强_第3张图片

使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强_第4张图片

(原图的灰度直方图显示图像未能有效利用,对比度增强后的灰度直方图显示图像量化恰当,对原始图像的灰度直方图进行了拉伸,覆盖了全部灰度范围)

使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强_第5张图片

使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强_第6张图片

(图像信息)

结:

matlab进行图像处理的新手,会继续分享自己做过的图像处理的实验,未来也希望自己可以在图像处理这个方向进行深造,请各位大佬多多指点,也希望可以跟各位matlab图像处理的新手一起学习共同进步!!!

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