实验3灰度变换.docx
- 文档编号:10628724
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:18
- 大小:1.29MB
实验3灰度变换.docx
《实验3灰度变换.docx》由会员分享,可在线阅读,更多相关《实验3灰度变换.docx(18页珍藏版)》请在冰豆网上搜索。
实验3灰度变换
实验三灰度变换与直方图处理
一、实验目的
1、理解图像直方图的含义;
2、掌握MATLAB中灰度转换和直方图处理相关函数;
3、了解直方图均衡化的实现方法。
二、实验步骤及内容
1、灰度转换
灰度变换是图像增强技术中最简单的一类。
常用的三类基本函数:
线性函数、对数函数、幂次函数。
(1)图像反转:
对教材中61页的图像Fig3.04(a)的图像进行反转变换
Image=imread('Fig3.04(a).jpg');
imshow(Image);
Image=255-double(Image);%反转
figure
(2),imshow(uint8(Image));
11电子韦志东
(2)对数变换:
对教材中62页的图像Fig3.05(a)进行对数变换
closeall
Image=imread('Fig3.05(a).jpg');
imshow(Image);
Image=log(1+double(Image));%对数变换
figure
(2),imshow(Image,[]);
(3)幂次变换:
对教材中66页的图像Fig3.09(a)进行幂次变换
closeall
Image=imread('Fig3.09(a).jpg');
imshow(Image);
Image2=double(Image).^3.0;%γ=3
figure
(2),imshow(Image2,[]);
Image2=double(Image).^4.0;
figure(3),imshow(Image2,[]);
Image2=double(Image).^5.0;
figure(4),imshow(Image2,[]);
2、灰度直方图的显示imhist
imhist是MATLAB提供的显示图像灰度直方图的函数。
(1)显示图像cameraman.tif的直方图。
closeall
x=imread('cameraman.tif');
figure
subplot(2,1,1)
imshow(x)
subplot(2,1,2)
imhist(x)
(2)还可以将直方图显示成其他形式,比如柱形图(续一)或者折线图(续二)。
(续一):
h=imhist(x);
h1=h(1:
10:
256);
horz=1:
10:
256;
bar(horz,h1)
axis([0255015000])
set(gca,'xtick',0:
50:
255)
set(gca,'ytick',0:
2000:
15000)
(续二):
h=imhist(x);
plot(h)
axis([0255015000])
set(gca,'xtick',0:
50:
255)
set(gca,'ytick',0:
2000:
15000)
思考题1:
显示教材中71页,暗、亮、低对比度和高对比度图以及它们对应的直方图,即显示实验文件夹中Fig3.15(a)1.jpg~Fig3.15(a)4.jpg各图的直方图,观察其直方图的分布情况,进一步了解直方图的含义。
图2-1暗、亮、低对比度和高对比度图
(1)closeall
x=imread(‘Fig3.15(a)1.jpg’);
figure
subplot(2,1,1)
imshow(x)
subplot(2,1,2)
imhist(x)
(2)closeall
x=imread('Fig3.15(a)2.jpg');
figure
subplot(2,1,1)
imshow(x)
subplot(2,1,2)
imhist(x)
(3)closeall
x=imread('Fig3.15(a)3.jpg');
figure
subplot(2,1,1)
imshow(x)
subplot(2,1,2)
imhist(x)
(4)closeall
x=imread('Fig3.15(a)4.jpg');
figure
subplot(2,1,1)
imshow(x)
subplot(2,1,2)
imhist(x)
3、图像的强度调整函数imadjust
(1)imadjust是MATLAB提供的图像强度调整函数。
利用它也可以实现图像反转。
closeall
I=imread('Fig3.04(a).jpg');
imshow(I,[]);
JJ=imadjust(I,[01],[10]);
figure
(2),imshow(JJ,[])
(2)使用imadjust函数对cameraman.tif图像进行灰度压缩
closeall
x=imread('cameraman.tif');
figure
subplot(2,2,1),imshow(x)
subplot(2,2,2),imhist(x)
subplot(2,2,3)
y=imadjust(x,[],[0.40.6]);%imadjust函数进行灰度压缩
imshow(y)
subplot(2,2,4),imhist(y)
思考题2:
查看imadjust函数的使用方法,把实验文件夹中的lena_adjust.bmp用imadjust进行灰度范围拉伸,得出类似图2-2的结果,写出命令。
图2-2imadjust调整lena图像
closeall
x=imread('lena_adjust.bmp');
figure
subplot(2,2,1),imshow(x)
subplot(2,2,2),imhist(x)
subplot(2,2,3)
y=imadjust(x,[0.40.542],[]);
imshow(y)
subplot(2,2,4),imhist(y)
(注解:
>>max(x(:
))
ans=138
>>min(x(:
))
ans=102
>>102/255
ans=0.4000
>>138/255
ans=0.5412)
3、直方图均衡化histeq
直方图均衡化是图像增强的一个重要方法,人们已经提出了很多直方图均衡化和规定化的算法,其中基于累积分布函数的算法最为经典。
histeq命令就是基于这种经典的算法。
对教材中75页的图像Fig3.15(a)1.jpg的进行直方图均衡化处理。
closeall
Image=imread('Fig3.15(a)1.jpg');
Out_Image=histeq(Image);
figure
subplot(1,2,1),imshow(Image)
subplot(1,2,2),imhist(Image)
figure
subplot(1,2,1),imshow(Out_Image)
subplot(1,2,2),imhist(Out_Image)
思考题3:
编写m程序,显示图像的直方图,并与imhist()函数结果做比较。
(提示:
对图像I的灰度值进行统计,myhist(I(i,j)+1)=myhist(I(i,j)+1)+1;
图像灰度值I(i,j)的范围是【0255】,matlab中数组下标是从1开始的。
用plot(myhist)来显示统计结果。
)
closeall
P=imread('Fig3.04(a).jpg');
y=zeros(1,256);
[mn]=size(P)
fori=1:
m
forj=1:
n
y(double(P(i,j))+1)=y(double(P(i,j))+1)+1;
end
end
figure
subplot(1,2,1),plot(y)
subplot(1,2,2),imhist(P)
三、实验报告及要求
1、按照上述实验步骤把实验结果截图(所有的实验图像标上自己的学号姓名)。
2、回答思考题,写出实现的命令及实验结果截图,分析结果附上文字说明。
3、使用word文档写报告,交电子文档;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验3 灰度变换 实验 灰度 变换
![提示](https://static.bdocx.com/images/bang_tan.gif)