数字图像处理实验讲义Word文档下载推荐.docx
《数字图像处理实验讲义Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验讲义Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
3)使用File|Revert恢复原来的RGB模式;
4)利用吸管和调色板工具,通过View|GamutWarning命令了解RGB模式转换到CMYK模式过程中灰丢失或被修改的颜色。
5)选择Image|Mode|CMYK/或其它命令,转换图像的显示模式。
三、实验要求:
1)课堂上演示对彩色图像应用各种颜色模式的处理结果。
2)递交实验报告,写明颜色模型与颜色模式间的相互关系,常用的几种颜色模型显示颜色的方法及不同颜色模式的应用场合。
实验二:
Photoshop中图像修饰及平滑、锐化滤镜的使用
利用PhotoShop中提供的菜单,观察图像的直方图分布,并且结合课堂中的有关直方图变换的内容,利用该软件实现直方图的对比度增强、直方图均衡化。
在PhotoShop中通过相应命令,观察图像平滑、锐化的结果。
(实验图像在C:
\Srcimg或C:
\source\srcimg目录下。
)
1.Dip1_1.bmp提取华盛顿纪念碑(直方图和灰度变换)
①统计图像直方图。
在直方图上找到对应于直方图峰值和纪念碑的灰度位置。
施行灰度拉伸将这两个位置分别向左右移20个灰度级,统计变换后图像的直方图。
②进行灰度均衡化,比较均衡化和灰度拉伸之异同。
③进行灰度窗口变换,突出感兴趣的区域。
菜单Image->
Histogram可以观察直方图分布,Image->
Adjust->
Curves可以进行灰度拉伸。
Image->
Equailize可以进行直方图均衡化。
可以用MagicWandTool(W)进行带连通性的相似颜色区域的选择,在纪念碑上单击可以得到纪念碑的形状(但和天的区域有所重叠)。
Tolerance可以选择20-30。
2.Dip4_1.bmp处理主要图像(平滑和锐化)
①图像平滑对噪声、边缘的影响:
选择不同大小和形状的邻域,分别采用模板卷积和中值滤波两种方法,对模板太大和太小时的现象进行讨论,并对两种方法进行比较。
②如何使图像变清晰些?
讨论锐化后对图像正面和负面影响。
③比较两次用
对图像卷积与一次用
对图像卷积的结果是否相同,注意模板原点的位置。
先用Image->
Mode->
GrayScale把图像变成灰度图像,然后用Filter->
Sharpen->
Sharpen(或SharpenMore)来实现锐化。
可以多做几次。
而Filter->
Blur->
Blur(或BlurMore,GaussianBlur)则是平滑。
Filter->
Other->
Custom则是自定义模板进行卷积。
完成实验报告,报告内容主要是将原理与实验现象相结合,利用原理简要解释观察到的现象。
实验三:
Photoshop中的几何变换及边缘提取
通过PhotoShop中提供的命令,实现图像的几何变换和边缘提取。
1.Dip3.bmp几何变换(透视和插值)
①平面透视变换(Dip3.bmp):
该图是从正前方45度俯瞰华盛顿特区,试从不同角度不同距离观看之。
(提示:
可将物体认为处于一个平面)
②选择不同的插值方法,讨论其效果之异同。
先用Ctrl+A选择所有区域,然后在菜单Edit->
Transform->
Skew(或Perspective),然后就可以拖动边界上的8个控制点,生成不同视点的图像。
2.Dip6_1.bmp边缘提取
①通过梯度算子求出水平垂直方向梯度图像,并进而求出梯度幅度图像。
②求出边缘图像,试验阈值高低对不同边缘的影响,并讨论方法如何可以适应不同梯度幅度的边缘。
先把图像变成灰度图像,然后用Filter->
Stylize->
FindEdges(或GlowingEdges)抽取边缘。
3.去掉dip2_1.bmp中覆盖的文字(英文)。
提示:
河岸不是水平的,需要先旋转;
上方的图像比倒影灰度浅一些,需要进行一些灰度变换。
4.Dip7_2.bmp形态学运算,用模板卷积,灰度变换和代数运算实现
①腐蚀和膨胀
②开和闭
①、②中结构元素为
③实现细化,用结构元素
(本题选做)
实验四:
Matlab中常用的图像操作方法
掌握常用图像处理软件Matlab的关于图像处理的基本函数,特别是imread、imwrite、imshow和image函数的使用,为后续Matlab编程实现图像处理做准备。
imread和imwrite:
在图像处理中,用的最多的是读入图像的像素信息和保存图像信息。
imread作用是从图像文件中读取图像数据,imwrite是将图像数据按照一定的图像格式写入文件中。
注意:
读入的图像有不同的类型(可用imfinfo('
filename'
)函数查看),如果为真彩色图像,即读入的矩阵为三维,不能直接用来作变换,如果为灰度图和索引图(index),即为二维矩阵。
但索引图的矩阵数值不是图像的颜色值,如果直接作图像处理会毫无意义可言,而且在存放时,没有加入颜色查找表(colormap)这一分量的话,用imwrite存放后的文件也不是原来的图像颜色,因为少了colormap一项,所以文件大小减少了。
用imwrite存放文件,可以存放为不同格式的图像文件,对应于不同的图像格式,也有不同的属性值,如果用其缺省的属性来存放文件时,有时会得到与原文件不一样的文件大小。
用iminfo函数可以得到其属性值,通过使用这些函数读写不同的图像,查看比较一下上述区别。
imshow和image:
图像的显示是最为重要的,用imshow和image都可以显示图像,但是有一定的区别。
用的不对,就会出错,或者得到一张空白图或者是彩色图显示成颗粒状、反相黑白图等等。
image是用来显示附标图像,即显示的图像上有x,y坐标轴的显示,可以看到图像的像素大小。
imshow只是显示图像。
它们都可以用subplot来定位图像显示的位置,用colormap来定义图像显示用的颜色查找表,比如用colormap(pink),可以把黑白图像显示成带粉红色的图像,很有趣的。
在这里最值得注意的是要显示的图像像素矩阵的数据类型。
显示真彩色图像像素三维矩阵X,如果是uint8类型,要求矩阵的数据范围为0-255,如果是double型,则其数据范围为0-1,要不就会出错或者出现空白页。
类型转换很简单,如果你原来的数值是uint8,在运算中转换为double后,实际要显示的数值没有改变的话,只要用uint8(X)就可转换为uint8型,如果不想转换频繁,也可在显示时用X/255来转换为符合0-1double类型范围要求的数值显示。
如果显示索引图像(二维矩阵),因为不同数据类型对应颜色查找表colormap的基点不同,会有所区别,如果不对的话,会出现很多意外的显示效果的。
如果索引图像像素数值是double型,则它的取值范围为1-length(colormap),数值起点为1,则矩阵中数值为1的对应colormap中第一行数据,如果索引图像像素数值是uint8,则取值范围为0-255,数值起点为0,则矩阵中数值为0的对应colormap中第一行数据,所以索引图像这两个数据类型之间的转换,要考虑到+1或-1。
直接用uint8或double转换则会查找移位,产生失真情况。
通过针对不同的图像使用这些图像显示函数,查看比较一下上述区别。
完成实验报告,报告内容主要是以上函数之间的联系和区别,使用时的注意事项。
实验五:
Matlab中图像变换的编程实现
图象处理工具包是由一系列支持图象处理操作的函数组成的,所支持的图象处理操作有:
几何操作、区域操作和块操作;
线性滤波和滤波器设计;
变换(DCT变换);
图象分析和增强;
二值图象操作等。
本实验着重练习利用matlab图象处理工具包编程实现图像的FFT和DCT。
变换理论在图象处理中起着关键作用,傅立叶变换具有许多重要性质,因而成为图象处理中最常用的变换。
1965年,COOLEY-TUKEY提出计算离散傅氏变换的快速富立叶变换FFT,将计算量从O(N2)下降到O(NlogN),从而使FFT在数字图象处理,气象报告,医学断层诊断等领域中得到了广泛的应用.
在Matlab中提供了函数fft,函数fft2和函数fftn分别用于进行一维DFT、二维DFT和n维DFT,函数ifft,函数ifft2和函数ifftn分别用于进行一维DFT、二维DFT和n维DFT的反傅立叶变换。
fftshift函数用于将变换后的图像频谱中心从矩阵的原点移到矩阵的中心。
编程计算图像的二维傅立叶变换,并显示其幅值的结果。
其命令格式如下:
loadimdemossaturn2
imshow(saturn2)
B=fftshift(fft2(saturn2))
Figure,imshow(log(abs(b)),[]);
Colormao(jet(64)),
colorbar
在Matlab工具箱中,dct2函数用来计算图像的二维离散余弦变换。
将一幅秋天的图像进行DCT变换,程序如下:
RGB=imread(‘autunm.tif’);
I=rgb2gray(RGB);
Imshow(I);
J=dct2(I);
Imshow(log(abs(J)),[]),
Colormap(jet(64)),
Colorbar;