第一篇:数字图像处理之图像复原总结
数字图像处理之图像复原技术总结
图像采集、传送和转换过程中,会加入一些噪声,表现为图像模糊、失真和有噪声等。
图像复原技术是根据图像退化的先验知识建立一个退化模型,以此模型为基础,采用各种逆退化处理方法进行恢复,得到质量改善的图像
图像噪声模型
CCD摄像机获取图像时,光照强度和传感器的温度是产生噪声的主要原因。
噪声:不期望接收到的信号(相对于期望接收到的信号而言)图像噪声按照噪声和信号之间的关系可以分为加性噪声和乘性噪声。
加性噪声一般指热噪声、散弹噪声等,它们与信号的关系是相加,不管有没有信号,噪声都存在。一般应该考虑为高斯噪声吧
1.高斯噪声(正态噪声)----源于电子电路噪声和由低照明度或高温带来的传感器噪声,CCD噪声
高斯噪声可以通过空域滤波的平滑或者图像复原技术来消除 P(z)= 1/(sqrt(2*pi*σ))*exp(-(z-μ)^2/(2*σ^2))
2.椒盐噪声--(双极)脉冲噪声(成像中的短暂停留,例如错误的开关操作)P(z)=Pa,z=a Pb,z=b 0,other
椒盐噪声是指图像中出现的噪声只有两种灰度值,分别是a和b,这两种灰度值出现的概率分别是Pa和Pb 均值是 m = a*Pa+b*Pb
方差是 σ^2 =(a-m)^2*Pa +(b-m)^2*Pb
通常情况下,脉冲噪声总是数字化为允许的最大值或最小值。负脉冲为黑点,正脉冲为白点。因此该噪声称为椒盐噪声,去除噪声的较好方法是中值滤波
3.均匀分布噪声(模拟随机数产生器)均匀分布噪声的概率密度函数为: P(z)= 1/(b-a),a<=z<=b*Pb 0,other
均匀分布噪声的期望和方差分别为: m =(a+b)/2
σ^2 =(b-a)^2/12
4.指数分布噪声(激光成像)指数分布噪声的概率密度函数为: P(z)= a*exp(-a*z),z>=0, 0,z<0
指数分布噪声的期望和方差分别为: m= 1/a,σ^2 = 1/a^2
5,伽马分布噪声(激光成像)伽马分布噪声的概率密度函数为:
P(z)=(a^b*z^(b-1))/(b-1)!*exp(-a*z)伽马分布噪声的期望和方差分别为: m = b/a,σ^2 = b/a^2 6.瑞利噪声
空域中的滤波复原
均值滤波复原 算术均值滤波器 几何均值滤波器 逆谐波均值滤波器
可以用于消除椒噪声或者盐噪声 顺序统计滤波复原
中值滤波、最大值滤波和最小值滤波
中值滤波可以很好的保留图像的边缘,非常适合去除椒盐噪声,效果优于均值滤波 二维中值滤波 J = medianfilt2(I)
最大值滤波器也能够去除椒盐噪声,但会从黑色物体的边缘去除一些黑色像素
最小值滤波器会从白色物体的边缘去除一些白色像素 二维排序滤波 J = ordfilt2(I,order,domain)最大值滤波 J = ordfilt2(I,9,ones(3))最小值滤波 J = ordfilt2(I,1,ones(3))自适应滤波复原
wiener2()自适应维纳滤波
图像复原算法
逆滤波复原
在频域上使用退化后观察得到的图像频域值来除去退化函数,得到近似于原图像的估计图像,然后通过傅里叶逆变换得到原图像的估计值
维纳滤波复原(对运动模糊图像进行复原)deconvwnr()进行图像的维纳滤波复原
约束最小二乘法复原 deconvreg()
Lucy-Richardson复原
deconvlucy()采用加速收敛的Lucy-Richardson算法对图像进行复原
盲解卷积复原
在实际应用中,经常在不知道PSF的情况下对图像进行复原。其优点在于对退化图像没有先验知识的情况下,仍然能够进行复原 deconvblind();
第二篇:数字图像处理——彩色图像实验报告
6.3实验步骤
(1)对彩色图像的表达和显示
* * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * *
rgbcube(0,0,10);
%从正面观察彩色立方体
rgbcube(10,0,10);%从侧面观察彩色立方 rgbcube(10,10,10);%从对角线观察彩色立方体
%* * * * * * * * * *索引图像的显示和转换* * * * * * * * * f=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(f);
%f是RGB真彩图像
%rgb图像转换成8色索引图像,不采用抖动方式
[X1,map1]=rgb2ind(f,8,'nodither');figure,imshow(X1,map1);
%采用抖动方式转换到8色索引图像
[X2,map2]=rgb2ind(f,8,'dither');figure,imshow(X2,map2);%显示效果要好一些 g=rgb2gray(f);
%f转换为灰度图像
g1=dither(g);
%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);
%显示灰度图像
figure,imshow(g1);
%显示抖动处理后的二值图像
程序运行结果:
*
彩色立方体原图
不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像
灰度图像抖动处理后的二值图像
(2)彩色空间转换
f=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(f);
%转换到NTSC彩色空间
%f是RGB真彩图像
ntsc_image=rgb2ntsc(f);
figure,imshow(ntsc_image(:,:,1));%显示亮度信息 figure,imshow(ntsc_image(:,:,2));%显示色差信息 figure,imshow(ntsc_image(:,:,3));%显示色差信息
%转换到HIS彩色空间
hsi_image=rgb2hsi(f);
figure,imshow(hsi_image(:,:,1));%显示色度信息 figure,imshow(hsi_image(:,:,2));%显示饱和度信息 figure,imshow(hsi_image(:,:,3));%显示亮度信息
程序运行结果:
原图
转换到NTSC彩色空间
显示亮度信息显示色差信息显示色差信息
转换到HIS彩色空间
显示色差信息显示饱和度信显示亮度信息
(3)彩色变换
f=imread('D:PictureFig0614(a)(Chalk Original).tif');
G=ice('image',f);
%打开ice窗口对图像进行调整
%在窗口中执行以下操作:
%a)得到图像的补色
%b)拖动映射曲线,对图像显示效果进行修改
%c)在颜色通道中选中某一颜色,然后对映射曲线进行修改
程序运行结果(1):
全彩色图片ICE窗口
它的补色ICE窗口
拖动映射曲线,图像的显示效果
ICE窗口
f2=imread('D:Picture JLK Magenta.tif');figure,imshow(f2);%在CMYK彩色空间内打开图像 选择Red
ICE窗口
g2=ice('image',f2,'space','CMYK');
%f2的图像色彩偏红,拖动映射曲线,%调整映射参数,使图像的色彩看起来比较正常。
程序运行结果(2)
原图
在CMYK彩色空间内打开图像
调整映射参数后
ICE窗口
(4)彩色空间滤波
%* * * * * * * * * * * * * * * * * * * * 彩色图像平滑 * * * * * * * * * * * * * * * * * * * * * *
fc=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(fc);h=rgb2hsi(fc);
H=h(:,:,1);
S=h(:,:,2);
I=h(:,:,3);
%转换到HIS彩色空间
%色度分量
%饱和度分量
%亮度分量
%25×25的方形平滑算子 w=fspecial('average',25);
I_filtered=imfilter(I,w,'replicate');%对亮度分量进行平滑操作 H1=cat(3,H,S,I_filtered);%将H、S、I三个分量重新组合起来f=hsi2rgb(H1);
f=min(f,1);
%转换到RGB彩色空间
%f的值控制在[0,1]之间
figure,imshow(f);
%彩色图像平滑处理 %* * * **** * * * * * * * * * * * * 彩色图像锐化 * * * * * * * * * * * * * * * * * * * * * *
fb=imread('D:PictureFig0604(a)(iris).tif');lapmask=[1 1 1;1-8 1;1 1 1];%拉普拉斯算子 g=imfilter(fb,lapmask,'replicate');%拉普拉斯算子处理 figure,imshow(g);
%图像锐化后与原图像相减
fen=imsubtract(fb,g);
figure,imshow(fen);%显示差值图像
程序运行结果:
原图彩色图像平滑处理
拉普拉斯算子处理
锐化处理
(5)彩色图像分割
%* * * * * * * * * * * * * * * * * 彩色边缘检测* * * * * * * * * * * *
close all;clear;clc;
f=imread('iris.tif');%f如图6-4所示
%直接计算彩色边缘VG,并得到对单独彩色平面的二维梯度求和形成的梯度PPG
[VG,A,PPG]=colorgrad(f);
figure,imshow(VG,[ ]);
%显示彩色梯度图像 figure,imshow(A,[ ]);
%显示彩色梯度对应的角度图像
figure,imshow(PPG,[ ]);
%显示分量梯度图像
g=VG-PPG;
%计算两种梯度方法得到的梯度之差 figure,imshow(g,[ ]);
程序运行结果:
%显示差值图像
彩色梯度图像 彩色梯度对应的角度图像
分量梯度图像两种梯度差值图像
%* * * * * * * * * * * * * * * * * 彩色图像分割 * * * * * * * * * * * * * * * * * * * * * * * * *
f=imread('jupitermoon.tif');%f如图6-4所示 mask=roipoly(f);
%取得选定区域图像的红色分量
%手工选定图中红色区域
R=immultiply(mask,f(:,:,1));
%取得选定区域图像的绿色分量
G=immultiply(mask,f(:,:,2));%取得选定区域图像的蓝色分量
B=immultiply(mask,f(:,:,3));
g=cat(3,R,G,B);
%取得选定区域的RGB图像 figure,imshow(g);
%显示取得选定区域
[M,N,K]=size(g);
%选定区域的大小
I=reshape(g,M*N,3);
%对g中的像素进行重排,按列序拉成一行 idx=find(mask);
%找到mask中的像素在重排后的图像g中位置 I=double(I(idx,1:3));
%转换到double类型 [C,m]=covmatrix(I);
%计算协方差矩阵C主对角线上的元素,即方差 %>>sd=sqrt(d)%求得这些元素的平方根,即均方差
均方差
%用欧式距离对图像进行彩色分割,阈值为25
E25=colorseg('euclidean',f,25,m);E251=f;E251(E25==0)=0 figure,imshow(E251,[]);
%用马氏距离对图像进行彩色分割,阈值为25 M25=colorseg('mahalanobis',f,25,m,C);figure , imshow(M25 , [ ]);程序运行结果:
原图选定区域
欧氏距离彩色分割马氏距离彩色分割
6.4 思考题
(1)请将图6-1所示的彩色图像转换到灰度图像,并根据灰度值对此灰度图像进行索引化,手工指定索引表中的RGB值,并把此索引图像显示出来。
程序代码如下
%思路:把原图想转换为128位索引图
close all;clear;clc;%将f从灰度图像转换为索引图像,x是索引图像; %map是索引矩阵,R,G,B的值都相等
f=imread('D:PictureRGB_iris.tif');figure,imshow(f);
%f是RGB图像 f1=rgb2gray(f);
%将f转换成灰度图像 figure,imshow(f1);[x,map]=gray2ind(f1,128);
figure,imshow(x);%将map中的值做下面改变则R,G,B的值不相等,产生彩色
%把灰度图像转化成128位的索引图
map(1,:)=0.5;map(: ,1)=0.5;map(2,:)=0.4;map(1,1)=0;figure,imshow(f1,map);
程序运行结果:
原RGB图像
灰度图像
索引图 修改索引表后的图像
(2)6.3节的(4)是将图像转换到HIS空间后再对亮度分量进行平滑操作,试直接对原图像的RGB三个分量分别进行平滑操作,并计算两种操作方法的图像差值。
程序代码如下:
f=imread('D:PictureRGB_iris.tif');figure,imshow(f);%直接对原图像的RGB三个分量分别进行平滑操作 H=f(:,:,1);
S=f(:,:,2);
I=f(:,:,3);
%色度分量
%饱和度分量
%亮度分量
%25×25的方形平滑算子 w=fspecial('average',25);
H_filtered=imfilter(H,w,'replicate');
%对色度分量进行平滑操作 S_filtered=imfilter(S,w,'replicate');
%对饱和度分量进行平滑操作 I_filtered=imfilter(I,w,'replicate');
%对亮度分量进行平滑操作 %将H、S、I三个分量重新组合起来
Ha=cat(3,H_filtered,S_filtered,I_filtered);Ha=im2double(Ha);
%转化成double类型 figure,imshow(Ha);%转换到HIS彩色空间 h=rgb2hsi(f);
%转换到HIS彩色空间
H=h(:,:,1);
S=h(:,:,2);
I=h(:,:,3);
%色度分量
%饱和度分量 %亮度分量 %25×25的方形平滑算子 w=fspecial('average',25);
I_filtered=imfilter(I,w,'replicate');%对亮度分量进行平滑操作 %将H、S、I三个分量重新组合起来 H1=cat(3,H,S,I_filtered);fb=hsi2rgb(H1);
%转换到RGB彩色空间 fb=min(fb,1);
figure,imshow(fb);
%f的值控制在[0,1]之间
%彩色图像平滑处理
fen=imsubtract(Ha,fb);figure,imshow(fen);程序运行结果:
%计算两中方式处理后图像的差值
原图
直接对RGB三分量进行平滑操作转换到HIS空间对亮度进行平滑操作
差值图像
试验中的问题和心得体会:
本次实验是彩色图像处理。
(1)通过这个实验我了解了RGB图像以及索引图像在MATLAB中的存储和询问方式
(2)了解RGB空间到其他彩色空间的转换方式和转换方法(3)知道了一些彩色图像的空间滤波方法(4)了解在RGB向量空间中检测彩色边缘的方法(5)了解在RGB向量空间中对图像进行分割的方法
遇到的问题:在做思考题(2)的时候,计算两种平滑处理的得到图像的差值的中程序出现了问题,经过看出错信息,认真检查程序后,发现是因为直接平滑处理的图像是unit8类型的,而转换到HIS空间后,得到的图像是double类型,二者的类型不同,导致使用imsubtract函数的时候出现了问题。感觉做matlab的实验和平时编写C代码的时候有很多地方是相同的,都会经历:编码,debug,正确这三个过程,这个过程本身就具有挑战性和趣味性。
第三篇:数字图像处理图像变换实验报告
数字图象处理实验指导书
实验一 图象变换实验
实 验
实验名称:图像处理姓名:刘强
班级:电信
学号:
报 告
1102
1404110128
数字图象处理实验指导书
实验一 图象变换实验
实验一 图像变换实验——图像点运算、几何变换及正交变换
一、实验条件
PC机 数字图像处理实验教学软件
大量样图
二、实验目的
1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;
2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;
3、观察图像的灰度直方图,明确直方图的作用和意义;
4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效果;
5、观察图像正交变换的结果,明确图像的空间频率分布情况。
三、实验原理
1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤
图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。
图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:
B(x,y)=f[A(x,y)] 其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。
图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。
实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:
数字图象处理实验指导书
实验一 图象变换实验
2、图像正交变换的基本原理及编程实现步骤 数字图像的处理方法主要有空域法和频域法,点运算和几何变换属于空域法。频域法是将图像变换到频域后再进行处理,一般采用的变换方式是线性的正交变换(酉变换),主要包括傅立叶变换、离散余弦变换、沃尔什变换、霍特林变换和小波变换等。正交变换被广泛应用于图像特征提取、图像增强、图像复原、图像压缩和图像识别等领域。
正交变换实验的重点是快速傅立叶变换(FFT),其原理过于复杂,可以参考有关书籍,这里不再赘述。至于FFT的编程实现,系统采用的方法是:首先编制一个一维FFT程序模块,然后调用该模块对图像数据的列进行一维FFT,再对行进行一维FFT,最后计算并显示幅度谱。程序流程图如下:
四、实验内容
图像灰度直方图
点运算:图像反色、灰度线性变换、阈值变换、窗口变换、灰度拉伸和灰度
数字图象处理实验指导书
实验一 图象变换实验
均衡
几何变换:图像镜像变换、图像转置、图像平移、图像缩放和图像旋转 正交变换:傅立叶变换、离散余弦变换、沃尔什变换、霍特林变换和小波正反变换
注意:
1、所有实验项目均针对8位BMP灰度图像进行处理,其它格式(如JPG)的图像可以利用系统提供的图像格式转换工具进行转换,再进行处理;
2、本次实验的重点是图像的灰度直方图和点运算,几何变换和正交变换只作一般性了解。
五、实验步骤
以图像灰度阈值变换为例说明实验的具体步骤,其它实验项目的步骤与此类似。
1、打开计算机,在系统桌面上双击“数字图像处理实验教学软件系统”的可执行文件“图象处理”的图标,进入实验系统;
2、执行文件→打开,在OPEN对话框中选择待处理的图像,按【OK】后系统显示出图像;
3、执行查看→图像基本信息,将显示图像基本信息对话框,如图所示;
数字图象处理实验指导书
实验一 图象变换实验
4、执行查看→灰度直方图,查看图像的灰度直方图,如图所示;
5、执行图像变换→正交变换→傅立叶变换,查看图像的频率域分布情况,如图所示;
数字图象处理实验指导书
实验一 图象变换实验
6、执行图像变换→正交变换→小波变换,查看图像经过小波变换的效果,如图所示;
7、执行图像变换→点运算→阈值变换,修改阈值变换对话框中的阈值参数,如图所示;
数字图象处理实验指导书
实验一 图象变换实验
8、设置完阈值参数后按【OK】,系统显示阈值变换后的图像,与原图像进行比较,观察阈值变换的效果,如图所示;
9、重复步骤4,查看阈值变换后图像的直方图分布情况;
数字图象处理实验指导书
实验一 图象变换实验
10、重复步骤5,查看阈值变换后图像的频率域分布情况;
11、执行文件→保存或另存为,保存处理后的图像;
12、执行文件→重新加载,重新加载原始图像,但要注意先前对图像的处理将会丢失; 注意:
13、在执行步骤2时可能会出现有些图像文件不能打开的情况,如图所示,此时可以先利用图像格式转换工具将图像文件转换为8位BMP图像,再利用系统进行处理。步骤14和15是使用图像格式转换工具的方法;
14、在桌面上双击图像格式转换工具Jpg2bmp的图标,进入转换工具界面,如图所示;
15、按照界面提示,把JPG格式的图像文件转换成8位BMP图像。
数字图象处理实验指导书
实验一 图象变换实验
步骤13示意图
步骤14示意图
六、思考题
1、图像灰度线性变换、阈值变换、窗口变换、灰度拉伸和灰度均衡之间有何区别?
灰度线性变换就是将图像的像素值通过指定的线性函数进行变换,以此增强或者减弱图像的灰度。
灰度的阈值变换可以让一幅图像变成黑白二值图。
灰度的窗口变换也是一种常见的点运算。它的操作和阈值变换类似。从实现方法上可以看作是灰度折线变换的特列。窗口灰度变换处理结合了双固定阈值法,与其不同之处在于窗口内的灰度值保持不变。
灰度拉伸又叫做对比度拉伸,它与线性变换有些类似,不同之处在于灰度拉伸使用的是分段线性变换,所以它最大的优势是变换函数可以由用户任意合成。
灰度均衡是增强图像的有效方法之一。灰度均衡同样属于改进图像的方法,灰度均衡的图像具有较大的信息量。从变换后图像的直方图来看,灰度分布更加均匀。
2、利用图像镜像和旋转变换可以实现图像转置吗?如果可以,应该怎样实现?
可以。进行一次镜像变换,顺(逆)时针旋转两次,再以与第一次相反的方向镜像变换。
数字图象处理实验指导书
实验一 图象变换实验
实验二 图像增强及复原实验
七、实验条件
PC机 数字图像处理实验教学软件
大量样图
八、实验目的
1、熟练使用“数字图像处理实验教学软件系统”;
2、熟悉图像增强及复原的基本原理,了解编程实现的具体步骤;
3、观察图像中值滤波、平滑、锐化和伪彩色编码的结果,比较不同参数条件下的图像增强效果;
4、观察图像退化和复原的结果,比较不同复原方法的复原效果。
九、实验原理
1、图像增强和复原的基本原理
对降质图像的改善处理通常有两类方法:图像增强和图像复原。
图像增强不考虑图像降质的原因,只将图像中感兴趣的特征有选择地进行突出,并衰减图像的次要信息,改善后的图像不一定逼近原始图像,只是增强了图像某些方面的可读性,如突出了目标轮廓,衰减了各种噪声等。图像增强可以用空域法和频域法分别实现,空域法主要是在空间域中对图像象素灰度值直接进行运算处理,一般包括中值滤波、模板平滑和梯度锐化等,空域法可以用下式来描述:
g(x,y)=f(x,y)*h(x,y)其中f(x,y)是处理前图像,g(x,y)表示处理后图像,h(x,y)为空间运算函数。图像增强的频域法是在图像的频率域中对图像的变换值进行某种运算处理,然后变换回空间域,系统涉及的各种滤波器属于频域法增强,这是一种间接处理方法,可以用下面的过程模型来描述:
其中:F(u,v)=[ f(x,y)],G(u,v)= F(u,v)H(u,v),g(x,y)=1[ G(u,v)],和1分别表示频域正变换和反变换。实验系统提供了图像增强相关内容的文字说明,用户在操作过程中可以参考。
图像复原是针对图像降质的原因,设法去补偿降质因素,使改善后的图像尽可能逼近原始图像,提高了图像质量的逼真度。关于图像复原的详细原理可以参考相关书籍,这里不再赘述。本系统提供了图像的噪声退化、卷积退化和运动模糊退化操作,并提供了相应的逆滤波复原、维纳复原和运动模糊复原操作。本次
数字图象处理实验指导书
实验一 图象变换实验
实验中图像复原只作一般性了解。
2、编程实现步骤
下面以图像增强中的中值滤波操作为例给出编程实现的程序流程图,如下:
十、实验内容
图像增强:中值滤波、图像模板平滑、理想低通滤波器平滑、巴特沃斯低通滤波器平滑、梯度锐化、拉普拉斯锐化、理想高通滤波器锐化、巴特沃斯高通滤波器锐化和伪彩色编码
图像复原:图像的噪声退化、卷积退化、卷积加噪声退化、运动模糊退化、逆滤波复原、维纳复原和运动模糊复原
注意:
3、所有实验项目均针对8位BMP灰度图像进行处理;
4、本次实验的重点是图像增强中的中值滤波和模板平滑,图像复原只作一般性了解。
十一、实验步骤
以图像中值滤波操作为例说明实验的具体步骤,其它实验项目的步骤与此类似。
11、打开计算机,在系统桌面上双击“数字图像处理实验教学软件系统”的可执行文件“图象处理”的图标,进入实验系统;
12、执行文件→打开,在OPEN对话框中选择待处理的图像,按【OK】后系统显示出图像;
数字图象处理实验指导书
实验一 图象变换实验
13、执行查看→图像基本信息,将显示图像基本信息对话框,如图所示;
14、执行查看→灰度直方图,查看图像的灰度直方图,如图所示;
数字图象处理实验指导书
实验一 图象变换实验
15、执行图像变换→正交变换→傅立叶变换,查看图像的频率域分布情况,如图所示;
16、执行图像增强→中值滤波,选择或自定义对话框中的滤波器参数,如图所示;
数字图象处理实验指导书
实验一 图象变换实验
17、设置完滤波器参数后按【OK】,系统显示中值滤波后的图像,与原图像进行比较,观察中值滤波的效果,如图所示;
18、重复步骤4,查看中值滤波后图像的直方图分布情况;
数字图象处理实验指导书
实验一 图象变换实验
19、重复步骤5,查看中值滤波后图像的频率域分布情况;
10、执行文件→保存或另存为,保存处理后的图像;
11、执行文件→重新加载,重新加载原始图像,但要注意先前对图像的处理将会丢失。
数字图象处理实验指导书
实验一 图象变换实验
十二、思考题
1、图像中值滤波和模板平滑之间有何区别?
图像平滑处理就是用平滑模板对图像进行处理,以减少图像的噪声。而中值滤波是一种非线性的信号处理方法。
2、图像增强和图像复原之间有何区别?
图像增强:利用一定的技术手段,不用考虑图像是否失真(即原 始图像在变换后可能会失真)而且不用分析图像降质的原因。针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。
图像复原:针对质量降低或者失真的图像,恢复图像原始的内容或者质量。图像复原的过程包含对图像退化模型的分析,再对退化的图像进行复原。图像退化是由于成像系统受各种因素的影响,导致了图像质量的降低,称之为图像退化。这些因素包括传感器噪声、摄像机聚焦不佳、物体与摄像机之间的相对移动、随机大气湍流、光学系统的象差、成像光源和射线的散射等。图像复原大致可以分为两种方法:
一种方法适用于缺乏图像先验知识的情况,此时可对退化过程建立模型进行描述,进而寻找一种去除或消弱其影响的过程,是一种估计方法;
另一种方法是针对原始图像有足够的先验知识的情况,对原始图像建立一个数学模型并根据它对退化图像进行拟合,能够获得更好的复原效果。
3、图像维纳复原为什么比逆滤波复原效果好?
维纳滤波复原的原理可表示为
对于维纳滤波,由上式可知,当
时,由于存在 项,所以数字图象处理实验指导书
实验一 图象变换实验
不会出现被0除的情形,同时分子中含有项,在处。当时,此时维纳滤波就变成 了逆滤波;当时,表明维纳滤波避免了逆滤波中 出现的对噪声过多的放大作用,也就是说图像维纳复原比逆滤波复原效果好。
第四篇:数字图像处理图像翻转,平移,缩放
学号:Xb09680112
班级:09通信工程(1)
姓名:项德亮
实验一
图像几何变换
一. 实验目的
1.熟悉MATLAB中的图像处理工具箱。2.熟悉MATLAB中常用的图像处理函数。
3.掌握图像平移、图像旋转和图像缩放的基本原理与实现方法。二.实验设备 微机 三.预习要求
1.认真复习课件里的内容,并熟悉教材中第2章的内容。2.了解imread()、imshow()、imhist()等函数的使用方法。四.实验内容及步骤 实验内容:
1.熟悉MATLAB图像处理工具箱的功能及常用的图像处理函数。
2.打开“Image Processing”工具箱里的Demos,查看“Spatial Transformation”中的第一个例子“Creating a Gallery of Transformed Images”,把所有源代码拷到一个m文件里运行,查看运行结果,给源代码添加注释。然后再改变变换矩阵T里面的参数,再查看运行结果。把改变参数后(每位同学可以任意改变)的m文件保存为SpatialTransformation.m。
3.编程实现图像的平移,平移量应该可调(即用一个向量或两个标量保存平移量),并显示对图像“view”的处理结果。%平移 clear;%读入图像
imori=imread('view.bmp','bmp');imres=imori;[m,n]=size(imori);tx=60;ty=-40;%平移 for i=1:m
for j=1:n
if tx
imres(i,j)=imori(i,j);
else
imres(i,j)=255;
end end end imshow(imres)%显示结果%显示结果
4.编程实现图像的缩放,缩放系数可调,分别用两个变量或一个向量保存水平和垂直方向的缩放系数,并显示对图像“view”的处理结果。clc;sx=1.5;sy=2.0;%读入原始图像
imageOri=imread('view.bmp','bmp');[m,n]=size(imageOri);%求变化矩阵 s=[sx,0,0;0,sy,0;0,0,1];sinv=inv(s);%求变换后的图像大小 m1=m*sx;
n1=n*sy;m2=floor(m1);
n2=floor(n1);imageres=255*ones(m2,n2);%灰度差值 for i=1:m2
for j=1:n2
a=sinv*[i,j,1]';
x=a(1);y=a(2);
g(i,j)=ImageBiInterpolate(y,x,imageOri);
end end
imshow(uint8(g))%输出结果图像
5.编程实现图像绕图像原点的旋转,并显示对图像“couple”的处理结果。有兴趣的同学可以实现绕任意点的旋转。clc;clear;theta=30;%读入原始图像
ImageOri=imread('view.bmp','bmp');[m,n]=size(ImageOri);%求变化矩阵
r=[cos(theta),sin(theta),0;-sin(theta),cos(theta),0;0,0,1];rinv=inv(r);%求变换后的图像大小 m1=m;
n1=n;m2=floor(m1);
n2=floor(n1);imageres=255*ones(m2,n2);%灰度差值 for i=1:m2
for j=1:n2
a=rinv*[i,j,1]';
x=a(1);y=a(2);
g(i,j)=ImageBiInterpolate(x,y,ImageOri);
end end
imshow(uint8(g))
%输出结果图像
五.实验的心得体会
通过这次实验,我发现matlab软件的功能很强大,既能编写程序,完成波形的设计,还可以处理图像的位置,改变图像的大小,旋转图像的角度,学会使用imread()读取图像,imshow()展示图像,使用for语句,完成图像的反复操作,直到得到我们要的图像。
第五篇:《数字图像处理》
实验五 图像的几何变换
一.实验目的及要求
掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。
二、实验内容
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1.图像缩放 clear all, close all I = imread('cameraman.tif');Scale = 1.35;
% 将图像放大1.35倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');help imresize
% 查看imresize使用帮助
1.95倍
I = imread('cameraman.tif');Scale = 1.96;
% 将图像放大1.96倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');
说明:
注意观察不同插值方法的图像表现; 改变图像缩放因子Scale,重做上述实验。2.图像旋转
clear all, close all I = imread('cameraman.tif');Theta = 45;
% 将图像逆时针旋转45。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-45;
% 将图像顺时针旋转45。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');% 查看imrotate使用帮助 help imrotate %-------
图像旋转30顺时针逆时针
clear all, close all I = imread('cameraman.tif');Theta = 30;
% 将图像逆时针旋转30。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-30;
% 将图像顺时针旋转30。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');7 说明:
注意观察不同插值方法和输出图像后处理方法的图像表现; 改变旋转角度大小和方向,重做上述实验。
3.图像水平镜象
clear all, close all I = imread('cameraman.tif');I1 = flipdim(I,2);
I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);subplot(1,2,2), imshow(I1);figure(2), subplot(2,1,1), imshow(I);subplot(2,1,2), imshow(I2);%----
(二)用MATLAB编程实现以下图像几何变换(参考自编讲义相关章节)
1.图像扭曲变换 2.球面变换
三、实验设备
1.PIII以上微机; 2.MATLAB6.5;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理;
2.查阅资料,熟悉实验中涉及的有关MATLAB函数;
3.利用课余时间,采用MATLAB底层函数编程实现实验内容
(二)中的图像平移、图像转置等几何变换。
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。
实验六
数字图像处理应用
一.实验目的及要求
1.利用MATLAB提供的图像处理函数实现图像中物体属性的测量; 2.训练综合运用MATLAB图像处理函数的能力; 3.了解数字图像处理基本应用。
二、实验内容
以大米粒特性测量为例,综合应用课程中图像分割、形态学滤波、图像增强、图像特征提取等图像处理方法,实现大米粒特性自动测量。实验过程简述:
1. 读取和显示图像 2. 估计图像背景 3. 获取背景均匀的图像 4. 图像增强 5. 图像二值化分割 6. 区域标记及为彩色处理
7. 测量图像中的区域特性(面积、质心等)
8.统计大米粒的特性分布规律。
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结 果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
% Read and Display an Image clear, close all,close all;I = imread('rice.png');
figure, imshow(I)
% Use Morphological Opening to Estimate the Background
background = imopen(I,strel('disk',15));
figure, imshow(background);
%Display the Background Approximation as a Surface
figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);set(gca,'ydir','reverse');% Subtract the Background Image from the Original Image I2 = imsubtract(I,background);figure, imshow(I2)% Adjust the Image Contrast I3 = imadjust(I2, stretchlim(I2), [0 1]);figure, imshow(I3);% Apply Thresholding to the Image level = graythresh(I3);bw = im2bw(I3,level);figure, imshow(bw)% Determine the Number of Objects in the Image [labeled,numObjects] = bwlabel(bw,4);
% Label components.numObjects % Examine the Label Matrix RGB_label = label2rgb(labeled, @spring, 'c', 'shuffle');figure, imshow(RGB_label);% Measure Object Properties in the Image graindata = regionprops(labeled,'basic')allgrains = [graindata.Area];% Compute Statistical Properties of Objects in the Image max(allgrains);biggrain = find(allgrains==695)mean(allgrains);figure, hist(allgrains,20);12
(详见MATLAB IPT的 帮助文档demo中的Correcting Nonuniform Illumination)
(二)查看MATLAB IPT 帮助文档,研究其它应用演示
三、实验设备 1.PIII以上微机; 2.MATLAB6.5;
四、预习与思考
1.预习实验内容,阅读教材熟悉实验原理; 2.查阅资料,熟悉实验中涉及的有关函数。
3.利用课余时间,采用MATLAB函数编程实现实验内容
(二)。
五、实验报告要求
1.简述试验的目的和试验原理;
2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。