实验二 灰度变换与直方图处理
实验目的
通过本次实验,实现以下几个目标: 1. 理解灰度变换和直方图处理;
2. 熟悉MATLAB中与灰度变换和直方图处理相关的函数; 3. 掌握MATLAB中实现灰度变换和直方图处理的方法。
实验内容
一、灰度变换
1、灰度变换的一般形式
通过Image = g(Image)的语句可以实现对图像每个像素值的g变换,即 对于所有的像素[I,J]
Image[I,J]=g(Image[I,J])
命令格式
Image = g(Image)
注意,这里g变换是一个通用的表达。
例一实现了对课本中61页的图像Fig3.04(a)的图像反转
例一: Image=imread('Fig3.04(a).jpg');
imshow(Image); Image=255-Image;
figure(2),imshow(uint8(Image));
例二实现了对课本中62页的图像Fig3.05(a)的对数变换。
例二: Image=imread('Fig3.05(a).jpg');
imshow(Image);
Image=log(1+double(Image)); figure(2),imshow(Image,[]);
例三实现了对课本中66页的图像Fig3.09(a)的幂次变换
例三: Image=imread('Fig3.09(a).jpg');
imshow(Image);
Image2=double(Image).^3.0; figure(2),imshow(Image2,[]); Image2=double(Image).^4.0; figure(3),imshow(Image2,[]); Image2=double(Image).^5.0; figure(4),imshow(Image2,[]);
其中figure命令是MATLAB的系统函数,为了实现同时显示两幅图像。
2、图像的强度调整函数imadjust
imadjust是MATLAB提供的图像强度调整函数。利用它也可以实现图像反转,图像的反转是灰度变换的一种,类似于照片的底片,将灰度值为i的像素点按255-i(二值图像按1-i)显示。 命令格式:
JJ=imadjust(I,[0 1],[1 0]);
例四用imadjust函数重复了例一的效果。
例四: I=imread('Fig3.04(a).jpg');
imshow(I,[]);
JJ=imadjust(I,[0 1],[1 0]); figure(2),imshow(JJ,[])
二、直方图处理
1、灰度直方图的显示
imhist是MATLAB提供的显示图像灰度直方图的函数。 命令格式:
imhist(图像文件名)
例五显示了课本中71页的图像Fig3.15(a)1top的直方图。
例五: Image =imread('Fig3.15(a)1top.jpg');
imhist(Image);
还可以将直方图显示成其他形式,比如柱形图(续一)或者折线图(续二)。
例五(续一): h=imhist(Image);
h1=h(1:10:256); horz=1:10:256; bar(horz,h1) axis([0 255 0 15000]) set(gca, 'xtick',0:50:255) set(gca, 'ytick',0:2000:15000)
例五(续二): h=imhist(Image);
plot(h)
axis([0 255 0 15000]) set(gca, 'xtick',0:50:255) set(gca, 'ytick',0:2000:15000)
2、直方图均衡化
直方图均衡化是图像增强的一个重要方法,人们已经提出了很多直方图均衡化和规定化的算法,其中基于累积分布函数的算法最为经典。histeq命令就是基于这种经典的算法。 命令格式:
Out_Image = histeq(Image);
Image为输入图像,Out_Image为均衡化后的图像。
例六演示了对课本中75页的图像Fig3.15(a)1top的直方图处理。
例六: Image =imread('Fig3.15(a)1top.jpg');
Out_Image = histeq(Image); imshow(Image);
figure(2),imshow(Out_Image);
3、直方图规定化
直方图规定化可用MATLAB编程可实现。
例七完成'Fig3.09(a).jpg'到'Fig3.15(a)1top.jpg'的直方图规定化,即规定'Fig3.09(a).jpg'的输出直方图为'Fig3.15(a)1top.jpg'的直方图,输出了规定化后的'Fig3.09(a).jpg'的图像及直方图。 例七:I=imread('Fig3.15(a)1top.jpg');
[counts,x]=imhist(I);
Q=imread('Fig3.09(a).jpg'); figure(1), imshow(Q); figure(2), imhist(Q); M=histeq(Q,counts); figure(3), imshow(M); figure(4), imhist(M); figure(5),imhist(I);
比较图4和图5,M的直方图和I的直方图很相似,即达到了规定化的目的。
三、练习与思考
1、对课本中其他的例子进行测试。
2、反转命令imadjust的基本原理如何?如何实现图像的反转。灰度图像和
二值图像是否一致?
3、对数法增强对比度的原理是什么?
4、图像直方图是如何定义的?你能否自己实现直方图的显示功能?
5、直方图均衡化对图像产生了什么影响,用你的实验结果来佐证。能否举
例说明直方图均衡化的基本过程。
6、直方图规定化是指什么,思考进行直方图规定化的意义。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务