您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页实验二 灰度变换与直方图处理

实验二 灰度变换与直方图处理

来源:意榕旅游网


实验二 灰度变换与直方图处理

实验目的

通过本次实验,实现以下几个目标: 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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务