使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强
目的:
1、讀出rice.png文件,觀察圖像數據,并嘗試修改圖像數據矩陣的值,再將圖像顯示出來,觀察圖像顏色變換;
2、顯示rice.png圖像的灰度直方圖,對其做對比度增強處理即調整其灰度值,顯示調整后的灰度直方圖;
原圖:
(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進行圖像處理的新手,會繼續分享自己做過的圖像處理的實驗,未來也希望自己可以在圖像處理這個方向進行深造,請各位大佬多多指點,也希望可以跟各位matlab圖像處理的新手一起學習共同進步!!!
總結
以上是生活随笔為你收集整理的使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐一个基于Spring Boot +
- 下一篇: 王者荣耀是用什么代码变成MOBA游戏的,