版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字图像处理上机报告简介第一篇:数字图像处理上机报告练习一 常用matlab图像处理命令 一、练习目的 1、熟悉并掌握matlab工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 二、练习环境 windows操作系统matlab 6.5或以上应用软件 三、练习内容 1、图像文件的读写 (1)imread函数用来实现图像文件的读取。 输入以下程序: a=imread('文件名.扩展名');%用imread函数来读入图像 注:设置路径 imshow(a);%用imshow函数来显示图像 得到的结果如图: (2)imfinfo函数用来查询图像文件信息。 输入以下程序: i
2、nfo=imfinfo('文件名.扩展名');% 用imfinfo函数查询图像文件信息 得到: info = filename: '文件名.扩展名' (4)imshow函数用来显示图像。 刚才介绍imread函数时已使用此函数。 (5)colorbar函数将颜色条添加到坐标轴对象中。 输入以下程序: rgb=imread('*');%图像读入 i=rgb2gray(rgb);%把rgb图像转换成灰度图像 imshow(i),colorbar('vert')% 将颜色条添加到坐标轴对象中 得到如图:2、图像处理的基本操作 一、图像代
3、数运算 (1)imadd函数实现两幅图像的相加或者给一幅图像加上一个常数。 给图像每个像素都增加亮度的程序如下: i=imread('*'); j=imadd(i,100);%给图像增加亮度 subplot(1,2,1),imshow(i) %填充 subplot(1,2,2),imshow(j) 结果如图5。 (2)imsubtract函数实现从一幅图像中减去一个常数。 输入以下程序实现从一幅图像中减去一个常数: (3)immultiply实现两幅图像的相乘或者一幅图像的亮度缩放(图像乘以小于1或大于1的参数,比较效果)。 输入以下程序: (4)imdivide函数实现两幅图
4、像的除法或一幅图像的亮度缩放。 输入以下程序: 二、图像的空间域操作 (1)imrotate函数实现图像的旋转。 输入以下程序: i=imread('*'); j=imrotate(i,45);%对图像进行旋转 subplot(1,2,1),imshow(i); subplot(1,2,2),imshow(j); 得到图: 练习二 数字图像处理的基本操作 一、练习目的 1、练习使用matlab工具进行数字图像处理; 2、实现图像的边缘提取、滤波、直方图修正等操作。 二、练习环境 windows操作系统matlab 6.5或以上应用软件 三、练习内容 (1)imresize函数实
5、现图像的缩放。 输入以下程序: j=imread('文件名.扩展名'); x1=imresize(j,2);%对图像进行缩放 figure,imshow(j) 结果如图 (2)imcrop函数实现图像的剪切。 输入以下程序: i=imread('*'); i2=imcrop(i);%对图像进行剪切 subplot(填充),imshow(填充); subplot(填充),imshow(填充); 如图: 图像变换 (1)fft2函数和ifft2函数分别是计算二维的fft和反变换。 输入以下程序: f=zeros(100,100); f(20:70,40:60)=1;
6、 imshow(f); f=fft2(f);% 计算二维的fft f2=log(abs(f);%对幅值取对数 imshow(f2),colorbar (2)dct2函数采用基于fft的算法,用于实现较大输入矩阵的离散余弦变换。与之对应,idct2函数实现图像的二维逆离散余弦变换 输入以下程序: rgb=imread('*'); i=rgb2gray(rgb); j=dct2(i);% 对i进行离散余弦变换 imshow(log(abs(j),colorbar j(abs(j)t im_t(i,j) = j(i,j); else im_t(i,j) = i1(i,j); end
7、end end subplot(2,4,8); imshow(im_t); title('加门限后'); 4. (1) 用laplacian锐化算子(分a=1和a=2两种情况)对256´256大小、256级灰度的数字图像lena进行锐化处理,显示处理前、后图像。 源代码: %laplacian算子锐化 i=imread('第三篇:数字图像处理上机作业数字图像处理上机实验题 一、产生右图所示图像 f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。对其进行 fft: 1、 屏显示原图 f1(m,n)和
8、fft(f1)的幅度谱图; 2、令f2(m,n)=(-1)(m+n)*f1(m,n),重复以上过程,比较二者幅度谱的异同,简述理由; 3、若将f2(m,n)顺时针旋转 90 度得到f3(m,n),试显示 fft(f3)的幅度谱,并与 fft(f2) 的幅度谱进行比较; 4、若将f1(m,n) 顺时针旋转 90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示 fft(f5) 的幅度谱,并指出其与 fft(f1)和fft(f4)的关系; 5、若令f6(m,n)=f2(m,n)+f3(m,n),试显示 fft(f6)的幅度谱,并指出其与 fft(f 2)和fft(f3
9、) 的关系,比较 fft(f6)和fft(f5)的幅度谱。 代码 f1=zeros(256,256);for i =64:1:191 for j = 112:1:143 f1(i,j) = 100;endend f2 = fft2(f1);%f2(m,n) = f3 f3 = (-1)(i+j)*f1; f4 = fft2(f3);%f3(m,n) = f5 f5 = imrotate(f3,90,'bilinear'); f6 = fft2(f5);%f4(m,n) = f7 f7 = imrotate(f1,90,'bilinear'); f8 = fft2
10、(f7);%f5(m,n) = f8 f9 = f1 + f7; f10 = fft2 (f9); %f6(m,n) = f2(m,n)+f3(m,n) f11 = f3 + f5; f12 = fft2(f11);figure(1) subplot(1,2,1); imshow(abs(f1); title('原图f1'); subplot(1,2,2); imshow(abs(f2); title('幅度谱fft2(f1)'); figure(2) subplot(2,2,1) imshow(abs(f1); title('原图f1') su
11、bplot(2,2,2) imshow(abs(f2); title('幅度谱fft2(f1)'); subplot(2,2,3); imshow(abs(f3) title('变换谱f2'); subplot(2,2,4); imshow(abs(f4); title('幅度谱fft2(f2)'); figure(3) subplot(2,2,1) imshow(abs(f3) title('变换谱f2'); subplot(2,2,2); imshow(abs(f4); title('幅度谱fft2(f2)')
12、; subplot(2,2,3); imshow(abs(f5) title('变换谱f3'); subplot(2,2,4); imshow(abs(f6); title('幅度谱fft2(f3)'); figure(4) subplot(3,2,1); imshow(f7); title('f1旋转图f4'); subplot(3,2,2); imshow(abs(f8); title('幅度谱fft2(f4)'); subplot(3,2,3); imshow(f9); title('f5(m,n)=f1+f4
13、9;); subplot(3,2,4); imshow(abs(f10); title('幅度谱fft2(f5)'); subplot(3,2,5) imshow(abs(f1); title('原图f1'); subplot(3,2,6); imshow(abs(f2); title('幅度谱fft2(f1)'); figure(5) subplot(3,2,1) imshow(abs(f3) title('变换谱f2'); subplot(3,2,2); imshow(abs(f4); title('幅度谱fft2(f
14、2)'); subplot(3,2,3); imshow(abs(f5) title('变换谱f3'); subplot(3,2,4); imshow(abs(f6); title('幅度谱fft2(f3)'); subplot(3,2,5) imshow(abs(f11) title('变换谱f6=f2+f3'); subplot(3,2,6); imshow(abs(f12); title('幅度谱fft2(f6)');figure(6) subplot(2,2,1); imshow(f9); title('f
15、5(m,n)=f1+f4'); subplot(2,2,2); imshow(abs(f10); title('幅度谱fft2(f5)'); subplot(2,2,3) imshow(abs(f11) title('变换谱f6(m,n)=f2+f3'); subplot(2,2,4); imshow(abs(f12); title('幅度谱fft2(f6)'); 结果 分析 2、 f2(m,n)与f1(m,n)幅度值相同,f2(m,n)=(-1)(m+n)*f1(m,n)中,并未改变幅值。 3、 fft(f2) 比fft(f3)幅值大。
16、 4、 f5=f1+f4,即幅值相加。 5、 f6=f2+f3,即幅值相加。 二、产生教材 104 页题图 4.18 (右图)所示的二值图像(白为1,黑为0),编程实现习题4.18 所要求的处理(3*3 的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取(0或1),显示处理前后的图像,比较其异同。 代码 i= 1,0,1,0,1,0,1,0; 0,1,0,1,0,1,0,1; 1,0,1,0,1,0,1,0; 0,1,0,1,0,1,0,1; 1,0,1,0,1,0,1,0; 0,1,0,1,0,1,0,1; 1,0,1,0,1,0,1,0; 0,1,0,1,0,1,0,1
17、; j=imhist(i,2); k=filter2(fspecial('average',3),i); k1=round(k); j1=imhist(k1,2); k2=medfilt2(i); j2=imhist(k2,2);figure(1) subplot(2,2,1) imshow(i); title('原图像'); subplot(2,2,2) imshow(j); title('原图像直方图'); subplot(2,2,3) imshow(k1); title('3*3领域平均'); subplot(2,2,4)
18、imshow(j1); title('领域平均图像直方图') figure(2) subplot(2,2,1) imshow(i); title('原图像'); subplot(2,2,2) imshow(j); title('原图像直方图'); subplot(2,2,3) imshow(k2); title('中值滤波'); subplot(2,2,4) imshow(j2); title('中值滤波图像直方图') 结果 三、产生教材 104 页题图 4.16 所示的灰度图像(白为255 ,黑为0),分别加入高
19、斯白噪声和椒盐噪声,再分别进行 3´ 3 的平均滤波和中值滤波,显示原图像、加噪图像和滤波结果图像,并比较四种滤波结果。 代码 f=zeros(256,256); for i =23:1:233for j=28:1:35 f(i,j)=255;end for j=52:1:59 f(i,j)=255;end for j=76:1:83 f(i,j)=255;end for j=100:1:107 f(i,j)=255;end for j=124:1:131 f(i,j)=255;end for j=148:1:155 f(i,j)=255;end for j=172:1:179 f(
20、i,j)=255;end for j=196:1:203 f(i,j)=255;end for j=220:1:227 f(i,j)=255;end end g=imnoise(f,'gaussian',0.2); s=imnoise(f,'salt & pepper',0.2); k1=filter2(fspecial('average',3),g); g1=round(k1); g2=medfilt2(g); k2=filter2(fspecial('average',3),s); s1=round(k2); s2=m
21、edfilt2(s);figure(1) imshow(f) title('Ô-ʼͼÏñ'); figure(2) subplot(3,2,1) imshow(g) title('¸ß˹ͼÏñ'); subplot(3,2,2) imshow(s) title('½·ÑÎͼÏñ'); subplot(3,2,3
22、) imshow(g1) title('ƽ¾ùÂ˲¨¸ß˹ͼÏñ'); subplot(3,2,5) imshow(g2) title('ÖÐÖµÂ˲¨¸ß˹ͼÏñ'); subplot(3,2,4) imshow(s1) title
23、('ƽ¾ùÂ˲¨½·ÑÎͼÏñ'); subplot(3,2,6) imshow(s2) title('ÖÐÖµÂ˲¨½·ÑÎͼÏñ'); 结果 四、对某一灰度图像,进行如下处理: (1)分别利用 roberts、prewitt和sobe
24、l 边缘检测算子进行边缘检测; (2)将roberts、prewitt和sobel 边缘检测算子修改为锐化算子,对原图像进行锐化,同屏显示原图像、边缘检测结果和锐化后图像,说明三者之间的关系。 代码 f1=imread('第四篇:数字图像处理中南大学 数字图像处理实验 实验名称:空间滤波和频域滤波 班级:电子信息0802班 姓名:李哲 学号:0909080609 实验日期:2010年12月22日 目录 一,实验目的3 二,给图像添加噪声4 三,对被噪声污染的图像进行中值滤波和均值滤波5 四,对图像进行空间域的锐化6 五,matlab以外函数空间滤波和图像锐化7 六,自带函数傅立叶变换和
25、反变换8 七,低通滤波器程序9 八,心得体会 10 九,参考文献 10 一、实验目的 1,空间滤波: 图像平滑主要目的是减少噪声。噪声有很多种类,不同的噪声有不同的抑制措施。本实验要求用平滑线性滤波和中值滤波2种最典型、最常用的处理算法进行程序设计,学习如何对已被噪声污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。学习如何用锐化处理技术来加强图像的目标边界和图像细节,对图像进行梯度算子、拉普拉斯算子,使图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。本实验锐化处理主要在空间域中进行 2,频域滤波: 掌握傅里叶变换的基本性质; 掌握傅里叶正变换和反变换; 通
26、过实验了解二维频谱的分布特点; 掌握怎样利用傅立叶变换进行频域滤波 利用matlab程序数字图像的傅立叶变换并且进行频域滤波 二, 给图像添加椒盐噪声或者高斯噪声: 原理:利用matlab自带函数添加噪声 程序代码:a=imread('onion.png'); i=rgb2gray(a); imshow(i); j = imnoise(i,'salt & pepper',0.05); figure,imshow(j),title('椒盐噪声');%添加椒盐噪声 k = imnoise(i,'gaussian',0,0.03
27、); figure,imshow(k),title('高斯噪声');%添加高斯噪声 三, 对被噪声污染的图像进行中值滤波和均值滤波: 原理:自带函数进行中值滤波和均值滤波 源程序:a=imread('onion.png'); i=rgb2gray(a); j = imnoise(i,'salt & pepper',0.05); k2=medfilt2(j,5 5); k3=medfilt2(j,7 7); imshow(j),title('原图'); figure,imshow(k2),title('中值滤波5*5
28、模板'); figure,imshow(k3),title('中值滤波7*7模板'); 四, 对图像进行空间域的锐化: 原理:自带函数进行空间锐化。 源程序:i=imread('coins.png'); subplot(121),imshow(i),title('原图像'); h=fspecial('sobel'); i2=filter2(h ,i); subplot(122),imshow(i2),title('sobel算子锐化图像'); 五, matlab以外函数空间滤波和图像锐化: 源程序:i =
29、imread('eight.tif'); j = imnoise(i,'salt & pepper',0.02); k = medfilt2(j); imshow(j);title('噪声干扰图像') figure, imshow(k);title('medfilt2滤波图像') x=j;a=2;b=2; k=floor(a*b/2)+1; m,n=size(x); uint8 y=zeros(m,n); funbox=zeros(a,b); temp=zeros(a*b); for i=1:m-a for j=1:n-b
30、 funbox=x(i:i+a,j:j+b); temp=funbox(:); tempsort=sort(temp); y(i,j)=tempsort(k); end; end; figure, imshow(y);title('滤波图像') 六,利用matlab的图像处理工具箱中提供的函数实现图像的傅立叶变换和反变换: 源程序: a=imread('onion.png'); f=rgb2gray(a); subplot(131),imshow(f),title('原图'); f=fft2(f);% 快速傅立叶变换 subplot(132),i
31、mshow(f),title('傅里叶变换') fabs=abs(f);% 求幅频绝对值 fc=fftshift(fabs);% 中心移位 sfc=log(1+fc);% 对数变换 ifc1=ifftshift(fc);% 中心移位的逆变换,绝对值 if2=ifft2(ifc1);% 快速傅立叶变换的逆变换 subplot(133),imshow(if2),title('快速傅立叶变换的逆变换') 七,低通滤波器程序: i=imread('testpat1.png'); subplot(221),imshow(i);title('原始图像
32、') j1=imnoise(i,'gaussian',0.02);% 叠加高斯白噪声 subplot(222),imshow(j1);title('添加高斯白噪声的图像') f=double(j1); % 数据类型转换 g=fft2(f); % 傅立叶变换 g=fftshift(g); m,n=size(g); nn=2; % 二阶巴特沃斯(butterworth)低通滤波器 d0=50; % 设置截止频率 m=fix(m/2); n=fix(n/2); for i=1:m for j=1:n d=sqrt(i-m)2+(j-n)2); h=1/(1+0
33、.414*(d/d0)(2*nn); % 计算低通滤波器传递函数result(i,j)=h*g(i,j); end end result=ifftshift(result); j2=ifft2(result); j3=uint8(real(j2); subplot(223),imshow(j3); title('低通滤波后图像') 心得体会 1, 进一步熟悉了matlab软件、编程以及图像处理工具箱 2, 学会利用自带函数对图像做简单的处理,例如:均值化等。 3, 熟练了一些基本函数的运用,例如fspecial,imfilter等。 4,加深了对matlab编程的理解。 5,对
34、于试验中的出现的一些问题,懂得怎样去处理。 6,通过实际操作,增强了自己的动手能力,把理论用于实践。 参考文献:数字图像处理第二版 matlab教程 第五篇:数字图像处理实验五 图像的几何变换 一实验目的及要求 掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其matlab编程实现方法。 二、实验内容 (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 1. 图像缩放 clear all, close all i = imread('cameraman.tif
35、39;); 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
36、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
37、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 in
38、terpolation '); 3 说明: 注意观察不同插值方法的图像表现; 改变图像缩放因子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,
39、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 bi
40、linear interpolation '); % 查看imrotate使用帮助 5 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,
41、'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
42、interpolation '); 7 8 说明: 注意观察不同插值方法和输出图像后处理方法的图像表现; 改变旋转角度大小和方向,重做上述实验。 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),
43、 imshow(i2); %- (二)用matlab编程实现以下图像几何变换(参考自编讲义相关章节) 10 1图像扭曲变换 2球面变换 三、实验设备 1piii以上微机; 2matlab6.5; 四、预习与思考 1预习实验内容,阅读教材熟悉实验原理; 2查阅资料,熟悉实验中涉及的有关matlab函数; 3利用课余时间,采用matlab底层函数编程实现实验内容(二)中的图像平移、图像转置等几何变换。 五、实验报告要求 1简述试验的目的和试验原理; 2叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3打印出所编写的实验程序。 4写出本实验的心得体会及意见。 实验六数字图像处理应用 一实验
44、目的及要求 1利用matlab提供的图像处理函数实现图像中物体属性的测量; 2训练综合运用matlab图像处理函数的能力; 3了解数字图像处理基本应用。 二、实验内容 以大米粒特性测量为例,综合应用课程中图像分割、形态学滤波、图像增强、图像特征提取等图像处理方法,实现大米粒特性自动测量。 实验过程简述: 1 读取和显示图像 2 估计图像背景 3 获取背景均匀的图像 4 图像增强 5 图像二值化分割 6 区域标记及为彩色处理 7 测量图像中的区域特性(面积、质心等) 8统计大米粒的特性分布规律。 (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结 11 果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 % read and
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 5 Here and Now (Period 1)Section A (1a-Pronunciation)教案同步练2025-2026学年人教版英语七年级下册
- 【北京】《消息二则》名师任务单(第2课时)
- 2025-2030年医疗保健培训企业制定与实施新质生产力战略分析研究报告
- 企业数据分类分级评估协议2025年规范
- 2006年浙江省宁波市某校保送生招生考试数学试卷【含答案】
- 科学预防传染构建免疫屏障小学六年级主题班会课件
- 外墙工程承包合同8篇
- 预防传染病要记牢健康快乐无烦恼小学主题班会课件
- 2026村中支教面试题及答案
- 2026调度员面试题及答案
- 2026四川雅安市雨城区河北街道便民服务中心招聘见习人员2人考试备考试题及答案详解
- 2026年七升八数学压轴应用与几何证明专项突破三套组合卷A+B+C(附赠开学摸底卷含多种解题思路与易错清单)
- 建筑施工单位安全生产三级教育制度培训课件
- 2026年广东省大宝山矿业有限公司职工医院医护人员招聘笔试备考题库及答案解析
- 2026年办公室文员笔试试题(含答案)
- 社区老年人健康监测数据采集规范指引
- 北师大版九年级物理全一册电子课本教材
- 北师大版小学数学四年级下册单元测试题含答案(全册)
- 基坑工程作业活动风险分级管控清单
- 铝合金门窗工程报价范本
- 夏季饮食健康和预防蚊虫叮咬
评论
0/150
提交评论