发布时间:2024-03-16 11:01
实验环境:windows 11 matlab2018a
注意,实验有参考成分!!!
一。实验目的:
1.熟悉MATLAB或OpenCV的操作和基本功能;
2.理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;
二、实验原理:
1、图像的平移:
图像平移与点的平移相类似,可以将图像的平移类比于图像的像素点的平移。
初始坐标为(x,y)的点经过平移(x0,y0),坐标变为(x',y')。
像:x1=x+x0,y1=y+y0一样,
以矩阵形式表示为∶
平移可以使用matlab的translate函数,注意参数的选择。
2.图像的镜像变换是以图像的垂直中轴线或者水平中轴线进行变换。有垂直变换和水平变换的区别。下面是矩阵表示。
在这里,可以使用matlab的flipdim函数进行操作,这里需要注意函数的参数的选择。
3.图像的缩小和放大的矩阵为:
当Sx≤1,Sy≤1时,图像缩小;Sx≥1,Sy≥1时,图像放大。
这里的缩小和放大也可以类比于像素点的缩小与方法的问题。
这里的缩小和放大可以使用matlab的imresize函数,这里需要注意函数的操作。
4.图像的旋转操作:
我们一般认为图像应该绕着中心点旋转,但是图像的原点在左上角,在计算的时候首先需要将左上角的原点移到图像中心,并且Y轴需要翻转。
其变换矩阵为∶
该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(a,b)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。
图像的旋转可以使用matlab的imrotate函数进行,这里需要注意函数的参数。
三、实验内容步骤:
要求使用MATLAB或OpenCV来完成以下实验。
1.对图像进行平移变换;2.对图像进行垂直镜像变换;3.对图像进行水平镜像变换;
4.对图像进行缩放和旋转操作。
实验开始:
1.图像的平移变换:(这里的平移变换是任意坐标的变换)
代码使用到translate函数、imdilate函数,其中translate函数用于图像移动,imdilate函数用于图像的膨胀。
这里的两个set语句可以不用写,这里为了方便就加上了。
2.图像垂直镜像变换:这里使用了flipdim函数进行操作
这里注意,当flipdim函数第二个参数是1的时候,图像实现上下翻转,当第二个参数是2的时候,图像实现垂直轴的左右翻转。这个函数的使用需要在matlab高版本的条件下。
3.对图像进行水平镜像变换:
这里也像第二题一样使用flipdim函数都可以。
4.对图像进行缩放和旋转操作:
图像的缩放操作可以使用imresize函数,图像的旋转操作可以使用imrotate函数。
这里使用的imresize函数之中的参数’nearest’是改变图像尺寸时采用最近邻插值方法。
下面是旋转操作:
报表工具对比评论汇总,选型看这一篇就够了---------报表工具对比软文最全的收集汇总帖子
最详细的JavaScript教程(高级篇),深入学习JavaScript
最新论文笔记(+19):Biscotti_ A Blockchain System for Private and Secure Federated Learning / TPDS21
Faster-RCNN(三)TF版FasterRCNN:resnet_v1.py代码阅读笔记
SQL Server 2019 安装教程(详细免费,自定义安装)
OutputStreamWriter介绍&代码实现和InputStreamReader介绍&代码实现