ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:1.17MB ,
资源ID:9316347      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9316347.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字图像处理1.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字图像处理1.docx

1、数字图像处理1数字图像处理上机报告题 目:数字图像处理上机报告(第1次)学 校: 中国地质大学(武汉) 指 导 老 师: 傅华明 姓 名:班 级 序号:日 期: 2013年9月22日 目 录1-0基本要求31-1计算图象的统计参数81-2图象的灰度变换91-3空域平滑111-4空间锐化151-5图像缩放181-6实验总结231-0基本要求:题目要求:1显示一个灰度图象(在p01-p10中选)和彩色图象(在p13-p14中选);2观察灰度图象和彩色图象的数据矩阵和文件内容;3熟悉灰度图象、二值图象、彩色图象和索引图象之间的变换。算法设计: 1.导入灰度图像和彩色图像。 2.打开图像数组观察数据矩

2、阵。 3.输入指令读取图像的文件信息。 4.利用Matlab库函数实现灰度图象、二值图象、彩色图象和索引图象之间的变换。 5.读取变换前后的图像并比较观察。程序代码:p01 = imread(P01.tif); %读取灰度图像P01p14 = imread(p14.jpg); %读取彩色图像P14p02 = imread(P04.tif); %读取灰度图像P02,为之后的题目做准备p04 = imread(P04.tif); %读取灰度图像P04,为之后的题目做准备BW_p01 = im2bw(p01,0.5); %将灰度图像转换为二值图像BW_p14 = im2bw(p14,0.5); %将

3、彩色图像转换为二值图像Q_p14,map_p14 = rgb2ind(p14,32); %将彩色图像转换为32色索引图像Q_p014,map_p014 = rgb2ind(p14,64); %将彩色图像转换为64色索引图像Q_p01,map_p01 = gray2ind(p01,32); %将灰度图像转换为32色索引图像Q_p001,map_p001 = gray2ind(p01,64); %将灰度图像转换为64色索引图像Q_BW_p01,map_BW_p01 = gray2ind(BW_p01,32); %将二值图像转换为索引图像BW_Q_p14 = im2bw(Q_p14,map_p14)

4、; %将索引图像转换为二值图像R_p14 = ind2rgb(Q_p14,map_p14); %将索引图像转换为彩色图像G_p04 = ind2gray(Q_p14,map_p14); %将索引图像转换为灰度图像GR_p14 = rgb2gray(p14); %将彩色图像转换为灰度图像GR_p01 = ind2gray(Q_p01,map_p01); %将索引图像转换为灰度图像%以下代码作用是显示处理过后的图像%灰度图像实验subplot(2,2,1); imshow(p01);title(初始图像);subplot(2,2,2);imshow(BW_p01);title(变换为二值图像);s

5、ubplot(2,2,3);imshow( Q_p01,map_p01);title(变换为32色的索引图像);subplot(2,2,4);imshow( Q_p001,map_p001);title(变换为64色的索引图像);%彩色图像实验figure;subplot(2,2,1);imshow(p14);title(初始图像);subplot(2,2,2);imshow(BW_p14);title(变换为二值图像);subplot(2,2,3);imshow( Q_p14,map_p14);title(变换为32色的索引图像);subplot(2,2,4);imshow( Q_p014,

6、map_p014);title(变换为64色的索引图像);%索引图像实验figure;subplot(2,2,1);imshow(Q_p14,map_p14);title(初始图像);subplot(2,2,2);imshow(BW_Q_p14);title(变换为二值图像);subplot(2,2,3);imshow(R_p14);title(变换为彩色图像);subplot(2,2,4);imshow(G_p04);title(变换为灰度图像);%二值图像实验figure;subplot(1,2,1);imshow(BW_p01);title(初始图像);subplot(1,2,2);im

7、show(Q_BW_p01,map_BW_p01);title(变换为32色索引图像);%显示图像的文件信息imfinfo(P01.tif) %读取图像P01的文件信息运行结果:1. 灰度图像的处理2. 彩色图像的处理3. 索引图像处理4. 二值图像的处理5. 显示图像的文件信息输入指令:imfinfo(P01.tif) ;可得图像P01的文件信息如下: Filename: F:R2012bworkspaceP01.tif FileModDate: 12-五月-2000 00:48:08 FileSize: 263838 Format: tif FormatVersion: Width: 51

8、2 Height: 512 BitDepth: 8 ColorType: indexed FormatSignature: 73 73 42 0 ByteOrder: little-endian NewSubFileType: 0 BitsPerSample: 8 Compression: Uncompressed PhotometricInterpretation: RGB Palette StripOffsets: 8 SamplesPerPixel: 1 RowsPerStrip: 512 StripByteCounts: 262144 XResolution: YResolution:

9、 ResolutionUnit: None Colormap: 256x3 double PlanarConfiguration: Chunky TileWidth: TileLength: TileOffsets: TileByteCounts: Orientation: 1 FillOrder: 1 GrayResponseUnit: 0.0100 MaxSampleValue: 255 MinSampleValue: 0 Thresholding: 1 Offset: 2621521-1计算图象的统计参数题目要求:对图象p02计算其灰度的熵算法设计:程序代码:function H = C

10、alculate_H( x )%计算图像的熵%使用方法:输入一个图像数组(uint型),输出其熵值% Detailed explanation goes here C,R=size(x); %获得图像数组的尺寸 Level = 256; nk = zeros(Level); %建立数组用于统计各灰度出现次数 H = 0; %默认图像熵为0 for i = 1:C %遍历图像各点,依次进行灰度统计并储存于数组 for j = 1:R ImageLevel = x(i,j) + 1; nk(ImageLevel) = nk(ImageLevel) + 1; end end %遍历数组,依次按公式计

11、算各灰度出现的概率及图像的熵 for k = 1:256 P(k) = nk(k)/(C*R); if P(k)=0 H = -P(k) * log2(P(k) + H; end end end运行结果: 根据上文所编写的代码,在Matlab命令窗口执行如下代码可计算P02的熵值: H = Calculate_H( p02 ) 结果如下图所示: 1-2图象的灰度变换题目要求:对图象p04实施灰度平方变换算法设计:1.导入图像。 2.建立变换后图像存储空间。 3.遍历图像各点,依公式进行平方变换。程序代码:function y = GrayLevle2( x,Level )%灰度平方变换%使用方

12、法:输入一个图像数组(uint型)和灰度等级,输出其灰度平方变换后的图像数组C,R = size(x); %获得图像数组的尺寸y = zeros(C,R) ; %建立变换后图像存储空y = double(x); %将输入数组转换为double型,以免平方后溢出 %并可提供精度Level = 256; %默认灰度等级为256 %遍历图像各点,依次进行依公式进行平方变换 for i = 1:C for j = 1:R y(i,j) = y(i,j) * y(i,j)/(Level-1); end end y = uint8(y); %将输出数组类型还原subplot(1,2,1); %显示变换前后

13、的灰度直方图imhist(uint8(x);title(变换前的直方图);subplot(1,2,2);imhist(y);title(变换后的直方图);end运行结果:根据上文所编写的代码,在Matlab命令窗口执行如下代码可获得P04的灰度平方变换后的图像:subplot(1,2,1);imshow(p04);title(初始图像);G2_p04 = GrayLevle2( p04,256 );subplot(1,2,2);imshow( G2_p04 );title(平方变换后的图像);效果如下图所示: 1-3空域平滑题目要求:对图象p04施加高斯噪声和椒盐噪声并实施最大均匀性平滑法(4

14、.2.5节)算法设计:一、噪声施加算法: 1.导入图像。 2.使用matlab自带rand函数产生01的均匀噪声。 3.根据图像灰度范围和噪声系数r确定噪声具体数值。 4.施加噪声。5.输出结果。二、最大均匀性平滑算法 1.导入图像。 2.建立变换后图像存储空间。 2.遍历图像(不包括边框两行和边框两列)。 3.分别求出5个3*3窗口的梯度。 4.比较梯度,确定具体数值。 5.根据梯度最小值确定各点灰度值。6.输出结果。三、方差法评价空域平滑的效果 1.导入变换前后的图像数组 2.遍历个像素点计算变换前后图像灰度方差 3.输出方差值程序代码:1. Soble算子函数:function y =

15、Soble(p,i,j)%Soble算子求梯度%使用方法:输入一个图像数组(double型)和一个坐标值,%输出相应坐标点5个3*3窗口的梯度dx = p(i+1,j-1)+2*p(i+1,j)+p(i+1,j+1)-p(i-1,j-1)-2*p(i-1,j)-p(i-1,j+1);dy = p(i-1,j+1)+2*p(i,j+1)+p(i+1,j+1)-p(i-1,j-1)-2*p(i,j-1)-p(i+1,j-1);y = sqrt(dx*dx + dy*dy);end2. 求数组最小值函数:function y = F_min( x )%求数组最小元素%输入一个一维数组(类型不限),输

16、出数组最小元素Length = size(x);y = x(1);for i = 1:Length if yx(i) y = x(i); endendend 3.最大均匀性平滑法函数 function y = Function_1_34( x )%最大均匀性平滑法%输入一个图像数组(uint型),并对其做最大均匀性平滑处理%并输出处理后的图像数组 C,R = size(x);%获得输出数组的尺寸 y = zeros(C,R) ;%建立建立变换后图像存储空间 y = double( x );%将输入将输入数组转换为double型,以免处理过程数据溢出 Gr = zeros(5) ; %建立存储梯

17、度值的空间 %遍历图像各点,依次分别求出5个3*3窗口的梯度 for i = 3:(C-2) for j = 3:(R-2) Gr(1) = Soble(y,i,j); Gr(2) = Soble(y,i-1,j-1); Gr(3) = Soble(y,i+1,j-1); Gr(4) = Soble(y,i-1,j+1); Gr(5) = Soble(y,i+1,j+1); Min = F_min(Gr); %比较梯度,求出梯度最小值 switch Min %求梯度最小窗口的平均灰度,并作为该点灰度值 case Gr(1) temp = y(i-1,j-1)+y(i,j-1)+y(i+1,j-

18、1)+y(i-1,j)+y(i,j). +y(i+1,j)+y(i-1,j+1)+y(i,j+1)+y(i+1,j+1); y(i,j) = temp/9; case Gr(2) temp = y(i-2,j-2)+y(i-1,j-2)+y(i,j-2)+y(i-2,j-1). +y(i-1,j-1)+y(i,j-1)+y(i-2,j)+y(i-1,j)+y(i,j); y(i,j) = temp/9; case Gr(3) temp = y(i,j-2)+y(i+1,j-2)+y(i+2,j-2)+y(i,j-1). +y(i+1,j-1)+y(i+2,j-1)+y(i,j)+y(i+1,j

19、)+y(i+2,j); y(i,j) = temp/9; case Gr(4) temp = y(i-2,j)+y(i-1,j)+y(i,j)+y(i-2,j+1)+y(i-1,j+1). +y(i,j+1)+y(i-2,j+2)+y(i-1,j+2)+y(i,j+2); y(i,j) = temp/9; otherwise temp = y(i,j)+y(i+1,j)+y(i+2,j)+y(i,j+1)+y(i+1,j+1). +y(i+2,j+1)+y(i,j+2)+y(i+1,j+2)+y(i+2,j+2); y(i,j) = temp/9; end end end y = uint8(

20、y); %将处理后的数组转换为灰度图像数组类型end4.计算两幅图像的灰度方差function value = Fangchapingjia( x,y )%方差评价法评估滤波效果%导入变换前后的图像数组,输出方差值C,R = size(x); %获得输出数组的尺寸x = double(x); %将输入数组转换为double型,以免处理过程数据溢出y = double(y);s = 0; for i =1:C %遍历个像素点计算变换前后图像灰度方差 for j = 1:R s = s + (y(i,j)-x(i,j)*(y(i,j)-x(i,j); endendvalue = s/(C*R);e

21、nd运行结果:根据上文所编写的代码,在Matlab命令窗口执行如下代码,可对图像P04施加高斯噪声和椒盐噪声,并对其进行最大均匀性平滑法处理,并观察效果:注:该算法调用了Soble算子计算梯度,而每次调用Soble算子必须把整个图像数组全部导入一遍,故而程序耗时较大,算法改进办法为:放弃调用Soble算子,直接在函数中进行实时计算,这样一来,程序代码看起来比较杂乱,但可以有效缩短程序执行时间。GS_p04 = imnoise(p04,gaussian,0.02); %加入高斯噪声JY_p04 = imnoise(p04,salt & pepper,0.02); %加入椒盐噪声y1 = Func

22、tion_1_34(GS_p04);y2 = Function_1_34(JY_p04);subplot(2,2,1);imshow(GS_p04 );title(加入高斯噪声的图像);subplot(2,2,2);imshow( JY_p04 );title(加入椒盐噪声的图像);subplot(2,2,3);imshow( y1 );title(处理后的高斯噪声图像);subplot(2,2,4);imshow( y2 );title(处理后的椒盐噪声图像);div1 = Fangchapingjia( p04,y1 ); %评估高斯噪声的滤波效果div2 = Fangchapingjia

23、( p04,y2 ); %评估椒盐噪声的滤波效果效果如下图所示:由计算方差结果和图像实际效果可看出,该算法对高斯噪声的滤波效果更好注:上图为计算两幅图像变换前后的灰度方差,用以评估该算法对不同噪声的滤波效果1-4空间锐化题目要求:根据Sobel算子,按照公式4.3.10和公式4.3.11对图象p04实施空间锐化。算法设计:1.导入图像。 2.遍历图像(不包括边框行和边框列)。 3.根据Sobel算子计算各点梯度。 4.比较梯度和门限值,确定该点数值。5.输出结果。程序代码:注:该函数用到的Sobel算子函数已在上文写出,在此不赘述。function y1,y2 = Function_1_44(

24、 x,t1,t2 )%根据Sobel算子,按照公式4.3.10和公式4.3.11对图象实施空间锐化%使用说明:输入一个图像数组(uint型),以及两个梯度阀值%输出两个处理过的图像数组 C,R = size(x); %获得输出数组的尺寸 y1 = zeros(C,R); %建立建立变换后图像存储空间 y2 = zeros(C,R); %建立建立变换后图像存储空间 x = double(x); %将输入数组转换为double型,以免处理过程数据溢出 %遍历图像各点,依次分别求出各像素点的梯度 for i = 2:(C-1) for j = 2:(R-1) gra = Soble(x,i,j);

25、if gra=t1 %根据阀值t1确定该点数值 y1(i,j) = gra; else y1(i,j) = 50; end if gra=t2 %根据阀值t2确定该点数值 y2(i,j) = 100; else y1(i,j) = 50; end end end y1 = uint8(y1); %将处理后的数组转换为灰度图像数组类型 y2 = uint8(y2);end运行结果:根据上文所编写的代码,在Matlab命令窗口执行如下代码,可对图像P04的个像素点根据Soble算子求梯度,并根据设定的阀值做处理,并观察效果:y1,y2 = Function_1_44(p04,4,18); %输入要

26、处理的图像,并设定梯度阀值subplot(2,2,1);imshow( p04 );title(原图像);subplot(2,2,2);imshow( y1 );title(按照公式4.3.10锐化后的图像);subplot(2,2,3);imshow( y2 );title(按照公式4.3.11锐化后的图像);效果如下图所示: 由下图可看出,采用公式4.3.10锐化后的图像效果更佳,锐化后的图像边缘更加清晰,噪声较小。1-5图像缩放:题目要求:1.水平和垂直两方向等比例缩放2.水平和垂直两方向不等比例缩放算法设计:一、图像缩小1.导入图像。 2.建立缩小后图像的数组3.遍历图像,根据图像缩小

27、系数对原图数组等间距取出灰度值并依此赋予新建缩小图数组。 4.输出结果。二、图像放大1.导入图像。 2.建立放大后图像的数组。3.遍历图像,根据图像放大系数从原图数组取出灰度值并依此等间距赋予新建放大图数组。 4.放大图像数组的空缺部分用距离它最近点的原图像灰度值填充。5.输出结果。程序代码:1.图像缩小function y = Reduce( x,a,b,flag )%图像缩小尺寸不变%输入图像数组,纵、横向缩小系数,输出缩小后的图像C,R = size( x ); %获得输出数组的尺寸if flag=0 y = zeros(C,R); %flag = 0 缩小后图像尺寸不变else y =

28、 zeros(round(C*a),round(R*b);%flag = 1 缩小后图像尺寸变化endx = double(x); %将输入数组转换为double型, %以免处理过程数据溢出 %遍历图像各点,依次进行图像缩小处理for i = 1:C %对原图数组等间距取出灰度值并依此赋予新建缩小图数组 for j = 1:R m = round(j*b+1); %按四舍五入发等间距取点 n = round(i*a+1); if (mR|nC) m = R; n = C; end y(n,m) = x(i,j); endendy = uint8(y); %将处理后的数组转换为灰度图像数组类型2.图像放大function y = Amplify( x,a,b,flag )%图像放大%输

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2