数字图像处理实验四图像几何变换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分析:由实验结果可知,实现了图片旋转的效果 3、图像剪切 代码:
4
I=imread('11.jpg'); J=imcrop(I); figure(1),imshow(I);title('yuantu'); figure(2),imshow(J);title('croptu') J1= imcrop(I,[60 40 100 90 ]); %对指定区域进行剪切操作 figure(3),imshow(J1);title('croptu2');
6
注意:要把二维图像转换为一维图像。 5、设计一程序,对输入图像进行平移。X 方向平移 m1 个单位,Y 方向平移 n1 个单位。 代码: f=imread('ee.jpg'); %读图片 [m,n,x]=size(f);%求图的维数 f=double(f);%转化为双精度数据
mx=50;%x 轴平移量,像素数 my=10;%y 轴平移量,像素数 g=zeros(m,n,x)+255;%背境设为白色 g(mx+1:m,my+1:n,1:x)=f(1:m-mx,1:n-my ,1:x);%平移,取原图左上角赋给新图,原图坐标减少, 像素减少,看起来新图向右下平移 % g(1:m-mx,1:n-my ,1:x)=f(mx+1:m,my+1:n,1:x);%平移,取原图右下角赋给新图,原图坐标增加, 像素增加,看起来新图向左上平移 figure;%生成一个图窗 % imshow(g);%显示双精数据图形
[m n] : 图像以 m*n 为分块单位,对图像进行处理(如 8 像素*8 像素) Fun: 应用此函数对分别对每个 m*n 分块的像素进行处理 parameter1, parameter2: 要传给 fun 函数的参数
2
ቤተ መጻሕፍቲ ባይዱ
三、实验软硬件环境
装有 MATLAB 软件的电脑
四、实验过程(实验步骤、记录、数据、分析)
m 小于 1, 缩小图像。 method 参数用于指定在改变图像尺寸时所使用的算法, 可以为以下几种:
'nearest': 这个参数也是默认的,即改变图像尺寸时采用最近邻插值算法;
'bilinear':采用双线性插值算法;
'bicubic': 采用双三次插值算法;
2、图像旋转
Imrotate()函数是对图像进行旋转的操作命令,调用格式为 B = imrotate(A,angle) 将图像 A(图像的数据矩阵)绕图像的中心点旋转 angle 度, 正数表示逆时针旋转,
运行结果: 运行代码后,出现如下界面,选中要裁剪的区域,双击被选中的区域
出现以下界面:
5
分析:由实验结果可知,选中要裁剪的区域,然后出现两个被裁剪的区域,实验实现了图像剪切的 功能。 4、图像块操作 代码: A=imread( '11.JPG'); B=rgb2gray(A); C=blkproc(B,[8 8], 'std2(x)*ones(size(x))');% B=blkproc(A,[m n],fun)--- 对图像 A 的每一个 m*n 块应用 函数 fun,图像 A 的边缘用 0 扩展。 figure,imshow(C,[]); 运行结果:
1、图片比例缩放 代码:
I=imread('11.jpg'); J=imresize(I,1.25); J2= imresize(I,1.25, 'bicubic'); imshow(I); figure,imshow(J); figure,imshow(J2); Y=imresize(I,[100 150], 'bilinear');% Y=imresize(I,[mrows ncols], method)---返回一个指定行列的图 像。若行列比与原图不一致,输出图像将发生变形。 figure,imshow(Y) %nearest,bilinear,bicubic 为最近邻插值、双线性插值、双三次插值方法。默认为 nearest。 运行结果:
课程名称 实验序号 实验项目 实验地点 实验学时 指导教师
数字图像处理与分析 实验 4
图像几何变换
实验类型 实验员
专业 学号
班级 姓名
2017 年
9月
25 日
1
成绩:
教 师 评 语
一、实验目的及要求
1)掌握图像几何变换方法特点。 2)掌握图像的插值运算方法。
二、实验原理与内容
1、图像比例缩放
imresize()函数用于对图像做缩放处理,调用格式为 B = imresize(A, m) 返回的图像 B 的长宽是图像 A 的长宽的 m 倍,即缩放图像。 m 大于 1, 则放大图像;
负数表示顺时针旋转。返回旋转后的图像矩阵。
3、图像剪切
Imcrop()函数用于返回图像的一个裁剪区域。可把图像显示在一个图像窗口中, 并 允许用户以交互方式使用鼠标选定要剪切的区域。
4、图像块操作
Blkproc()函数对图像进行分块处理,调用格式为 B = blkproc(A,[m n],fun, parameter1, parameter2, ...)
7
imshow(uint8(g));%双精转为 uint8,再显示图形 运行结果:
分析:图像实现了 X 轴和 Y 轴的平移。
五、测试/调试及实验结果分析
实验结果如上所示。
六、实验结论与体会
通过实验,我基本掌握了图像几何变换方法,了解了图像变换的各个函数的格式和用法,同时 也掌握图像的插值运算方法。
分析:由实验结果可知,实现了图片放大和缩小的效果。 2、图像旋转 代码:
3
I=imread('11.jpg'); J=imrotate(I,32, 'bilinear');% J=imrotate(I,angle, method,’crop’)------ crop 用于剪切旋转后增大的图 像部分,返回和原图大小一样的图象。 imshow(I); figure,imshow(J) 运行结果:
年月日
8
4
I=imread('11.jpg'); J=imcrop(I); figure(1),imshow(I);title('yuantu'); figure(2),imshow(J);title('croptu') J1= imcrop(I,[60 40 100 90 ]); %对指定区域进行剪切操作 figure(3),imshow(J1);title('croptu2');
6
注意:要把二维图像转换为一维图像。 5、设计一程序,对输入图像进行平移。X 方向平移 m1 个单位,Y 方向平移 n1 个单位。 代码: f=imread('ee.jpg'); %读图片 [m,n,x]=size(f);%求图的维数 f=double(f);%转化为双精度数据
mx=50;%x 轴平移量,像素数 my=10;%y 轴平移量,像素数 g=zeros(m,n,x)+255;%背境设为白色 g(mx+1:m,my+1:n,1:x)=f(1:m-mx,1:n-my ,1:x);%平移,取原图左上角赋给新图,原图坐标减少, 像素减少,看起来新图向右下平移 % g(1:m-mx,1:n-my ,1:x)=f(mx+1:m,my+1:n,1:x);%平移,取原图右下角赋给新图,原图坐标增加, 像素增加,看起来新图向左上平移 figure;%生成一个图窗 % imshow(g);%显示双精数据图形
[m n] : 图像以 m*n 为分块单位,对图像进行处理(如 8 像素*8 像素) Fun: 应用此函数对分别对每个 m*n 分块的像素进行处理 parameter1, parameter2: 要传给 fun 函数的参数
2
ቤተ መጻሕፍቲ ባይዱ
三、实验软硬件环境
装有 MATLAB 软件的电脑
四、实验过程(实验步骤、记录、数据、分析)
m 小于 1, 缩小图像。 method 参数用于指定在改变图像尺寸时所使用的算法, 可以为以下几种:
'nearest': 这个参数也是默认的,即改变图像尺寸时采用最近邻插值算法;
'bilinear':采用双线性插值算法;
'bicubic': 采用双三次插值算法;
2、图像旋转
Imrotate()函数是对图像进行旋转的操作命令,调用格式为 B = imrotate(A,angle) 将图像 A(图像的数据矩阵)绕图像的中心点旋转 angle 度, 正数表示逆时针旋转,
运行结果: 运行代码后,出现如下界面,选中要裁剪的区域,双击被选中的区域
出现以下界面:
5
分析:由实验结果可知,选中要裁剪的区域,然后出现两个被裁剪的区域,实验实现了图像剪切的 功能。 4、图像块操作 代码: A=imread( '11.JPG'); B=rgb2gray(A); C=blkproc(B,[8 8], 'std2(x)*ones(size(x))');% B=blkproc(A,[m n],fun)--- 对图像 A 的每一个 m*n 块应用 函数 fun,图像 A 的边缘用 0 扩展。 figure,imshow(C,[]); 运行结果:
1、图片比例缩放 代码:
I=imread('11.jpg'); J=imresize(I,1.25); J2= imresize(I,1.25, 'bicubic'); imshow(I); figure,imshow(J); figure,imshow(J2); Y=imresize(I,[100 150], 'bilinear');% Y=imresize(I,[mrows ncols], method)---返回一个指定行列的图 像。若行列比与原图不一致,输出图像将发生变形。 figure,imshow(Y) %nearest,bilinear,bicubic 为最近邻插值、双线性插值、双三次插值方法。默认为 nearest。 运行结果:
课程名称 实验序号 实验项目 实验地点 实验学时 指导教师
数字图像处理与分析 实验 4
图像几何变换
实验类型 实验员
专业 学号
班级 姓名
2017 年
9月
25 日
1
成绩:
教 师 评 语
一、实验目的及要求
1)掌握图像几何变换方法特点。 2)掌握图像的插值运算方法。
二、实验原理与内容
1、图像比例缩放
imresize()函数用于对图像做缩放处理,调用格式为 B = imresize(A, m) 返回的图像 B 的长宽是图像 A 的长宽的 m 倍,即缩放图像。 m 大于 1, 则放大图像;
负数表示顺时针旋转。返回旋转后的图像矩阵。
3、图像剪切
Imcrop()函数用于返回图像的一个裁剪区域。可把图像显示在一个图像窗口中, 并 允许用户以交互方式使用鼠标选定要剪切的区域。
4、图像块操作
Blkproc()函数对图像进行分块处理,调用格式为 B = blkproc(A,[m n],fun, parameter1, parameter2, ...)
7
imshow(uint8(g));%双精转为 uint8,再显示图形 运行结果:
分析:图像实现了 X 轴和 Y 轴的平移。
五、测试/调试及实验结果分析
实验结果如上所示。
六、实验结论与体会
通过实验,我基本掌握了图像几何变换方法,了解了图像变换的各个函数的格式和用法,同时 也掌握图像的插值运算方法。
分析:由实验结果可知,实现了图片放大和缩小的效果。 2、图像旋转 代码:
3
I=imread('11.jpg'); J=imrotate(I,32, 'bilinear');% J=imrotate(I,angle, method,’crop’)------ crop 用于剪切旋转后增大的图 像部分,返回和原图大小一样的图象。 imshow(I); figure,imshow(J) 运行结果:
年月日
8