图像任意角度旋转.ppt

上传人:tia****nde 文档编号:14121249 上传时间:2020-07-04 格式:PPT 页数:16 大小:1.78MB
返回 下载 相关 举报
图像任意角度旋转.ppt_第1页
第1页 / 共16页
图像任意角度旋转.ppt_第2页
第2页 / 共16页
图像任意角度旋转.ppt_第3页
第3页 / 共16页
点击查看更多>>
资源描述
图像的任意角度旋转,学号:1234567789姓名:SmartKingbo,LOGO,理论基础,图像的旋转是图像的几何变换的一种。一般来说,图像的旋转是以图像的中心为原点,将图像上所有像素都旋转相同的角度。图像旋转后,图像的大小一般会改变,在图像的旋转变换中既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。,原图,旋转后图像大小不变,旋转后图像变大,以顺时针旋转为例来推导旋转变换公式。如下图所示。,旋转前:,旋转a角度后:,(1-1),(1-2),矩阵形式:,(1-3),上述旋转是绕坐标轴原点(0,0)进行的,向右为X轴为正方向,向上为Y轴正方向,设为坐标系。而屏幕中的坐标是以左上角为原点,向右为X轴正方向,向下为Y轴正方向,设为坐标系。要按图像的中心点(a,b)旋转,首先要进行坐标系的平移。,设图像宽度为W,高度为H,则由坐标系平移到的变换矩阵为:,(1-4),其逆变换矩阵表达式为:,(1-5),因此,可按如下方法旋转图像:根据式(1-4),将坐标系变成坐标系;根据式(1-3),将该点顺时针旋转a角度;根据式(1-5),将坐标系变成坐标系。,假设图像在新的坐标系下,以旋转后的新图像左上角为原点,为旋转时中心坐标为(a,b),旋转后图像中心坐标为(c,d),则可得到旋转变换矩阵表达式为:,(1-6),即:,这样,原图中的每一点经过旋转之后新图中都有与之对应的点。编程运行后结果如图所示:,原图,旋转后的新图(变大且有空白点),我们会发现新图像上有许多空白点,且随着角度的不同空白点的具体位置也会不同。为什么会出现空白点呢?,如何解决?,插值处理!,插值处理,最邻近插值和双线性插值,插值和不插值的一点区别:不插值:代码实现时是遍历原图像插值:代码实现时是遍历新图像,因此实现插值就在遍历新图的过程中做文章。式(1-6)的逆变换矩阵为:,(1-7),即:,这样,对于新图中的每一点,可以求出对应于原图中的点,然后把相应的颜色值赋给新图。插值就是把新图中的空白点(不带四个角)也映射到原图中的某一个点(最邻近插值)或者用原图中的几个点求一个颜色值赋给新图中的空白点(双线性插值)。,1.最邻近插值最邻近插值也称零阶插值。它输出的像素的颜色值就等于距离它映射到的位置最近的原图像素的颜色值,怎么取最近呢?用四舍五入的方法。结果图像带有锯齿形的边。,核心代码:x0=(int)(x1*cosa+y1*sina+temp1+0.5);y0=(int)(-1*x1*sina+y1*cosa+temp2+0.5);,效果图如下所示:,2.双线性插值双线性插值算法又称一阶插值算法,他的效果好于最邻近插值算法。,设,step1:step2:step3:,用双线性插值时,针对灰度图像和24位彩色图像分别自定义了两个个函数:unsignedcharInterpolation(BYTE*,int,int,float,float);unsignedcharInterpolation1(BYTE*,int,int,float,float,int);具体代码见程序。,双线性插值效果图如下所示:,感谢您的关注,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!