图像任意角度旋转

图像任意角度旋转

ID:40149866

大小:1.78 MB

页数:16页

时间:2019-07-23

图像任意角度旋转_第1页
图像任意角度旋转_第2页
图像任意角度旋转_第3页
图像任意角度旋转_第4页
图像任意角度旋转_第5页
资源描述:

《图像任意角度旋转》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、图像的任意角度旋转学号:1234567789姓名:SmartKingboLOGO理论基础图像的旋转是图像的几何变换的一种。一般来说,图像的旋转是以图像的中心为原点,将图像上所有像素都旋转相同的角度。图像旋转后,图像的大小一般会改变,在图像的旋转变换中既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。原图旋转后图像大小不变旋转后图像变大以顺时针旋转为例来推导旋转变换公式。如下图所示。旋转前:旋转a角度后:(1-1)(1-2)矩阵形式:(1-3)上述旋转是绕坐标轴原点(0,0)进行的,向右为X轴为正方向,向上为Y轴正方向,设为坐标系Ⅱ。而屏

2、幕中的坐标是以左上角为原点,向右为X轴正方向,向下为Y轴正方向,设为坐标系Ⅰ。要按图像的中心点(a,b)旋转,首先要进行坐标系的平移。设图像宽度为W,高度为H,则由坐标系Ⅰ平移到Ⅱ的变换矩阵为:(1-4)其逆变换矩阵表达式为:(1-5)因此,可按如下方法旋转图像:根据式(1-4),将坐标系Ⅰ变成坐标系Ⅱ;根据式(1-3),将该点顺时针旋转a角度;根据式(1-5),将坐标系Ⅱ变成坐标系Ⅰ。假设图像在新的坐标系下,以旋转后的新图像左上角为原点,为旋转时中心坐标为(a,b),旋转后图像中心坐标为(c,d),则可得到旋转变换矩阵表达式为:(1-6)即:这样

3、,原图中的每一点经过旋转之后新图中都有与之对应的点。编程运行后结果如图所示:原图旋转后的新图(变大且有空白点)我们会发现新图像上有许多空白点,且随着角度的不同空白点的具体位置也会不同。为什么会出现空白点呢?如何解决?插值处理!插值处理最邻近插值和双线性插值插值和不插值的一点区别:不插值:代码实现时是遍历原图像插值:代码实现时是遍历新图像因此实现插值就在遍历新图的过程中做文章。式(1-6)的逆变换矩阵为:(1-7)即:这样,对于新图中的每一点,可以求出对应于原图中的点,然后把相应的颜色值赋给新图。插值就是把新图中的空白点(不带四个角)也映射到原图中的某一个

4、点(最邻近插值)或者用原图中的几个点求一个颜色值赋给新图中的空白点(双线性插值)。1.最邻近插值最邻近插值也称零阶插值。它输出的像素的颜色值就等于距离它映射到的位置最近的原图像素的颜色值,怎么取最近呢?用四舍五入的方法。结果图像带有锯齿形的边。核心代码:x0=(int)(x1*cosa+y1*sina+temp1+0.5);y0=(int)(-1*x1*sina+y1*cosa+temp2+0.5);效果图如下所示:2.双线性插值双线性插值算法又称一阶插值算法,他的效果好于最邻近插值算法。设step1:step2:step3:用双线性插值时,针对灰度图像

5、和24位彩色图像分别自定义了两个个函数:unsignedcharInterpolation(BYTE*,int,int,float,float);unsignedcharInterpolation1(BYTE*,int,int,float,float,int);具体代码见程序。双线性插值效果图如下所示:感谢您的关注

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。