- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图像旋转变换
一般图像的旋转是以图像的中心为原点,旋转一定的角度,也就是将图像上的所有像素都旋转一个相同的角度。旋转后,图像的大小一般会改变,即可以把转出显示区域的图像截去,或者扩大图像范围来显示所有的图像。如图5-7所示。
?
?
?
?
?
?
?
?
?
?
?
?????????? 图5-7? 图像的旋转 ?????????????????????图5-8 图像旋转示意图
1.图像旋转的正变换
? ??图像的旋转变换也可以用矩阵变换表示。如图5-8,设点P0(x0, y0)旋转?角后的对应点为P(x,y)。旋转是绕坐标轴原点(0,0)进行的,向右为X轴正方向,向上为Y轴正方向。
旋转前:
x0=rCosθ??
y0=rSinθ
?????? 旋转后:
x=rCos( θ-a )=rCos θCos a +rSin θSin a =x0Cos a +y0Sin a
y=rSin( θ–a )=rSin θCos a –rCos θSin a =-x0Sin a +y0Cos a
?
上式写成矩阵表达式为:
??
?
?
?
?
?
?我们利用公式进行图像旋转正变换时需要注意如下两点:
1) 为了避免图像信息的丢失,图像旋转后必须进行平移变换。
2) 图像旋转之后,会出现许多空洞点,如图5-9所示,我们需要对这些空洞点必须进行填充处理,否则图像旋转后的效果不好,一般也称这种操作作为插值处理,可采用行或列插值方法。最简单的插值方法是,图像旋转前某一点(x,y)的像素点颜色,除了填充在旋转后坐标(x’,y’)上外,还要填充(x’+1,y’)和(x’,y’+1)。
?
?
?
?
?
?
?
2.图像旋转的逆变换
其逆运算矩阵为:
?
?
?
即:
?x0 =xCos a - ySin a
y0 = xSin a +yCos a
图像旋转逆变换和正变换有所不同,逆变换是对旋转后的图像所对应的大小范围进行逐点循环,通过逆变换的公式求出对应于原图像中的像素点位置和像素值,这样旋转后的图像不会出现空洞点,也就避免了旋转后的插值运算,从一定程度上提高了运算速度。
3.图像绕任意点旋转
上述的旋转是绕坐标轴原点(0,0)进行的,如果是绕某一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图像平移回原坐标系。例如,我们这里以图像的中心为旋转中心,如图5-10所示,
?
????????????????????? ????????????????????0??????????????????? x
???
?
?
?
????????????????????????????????????????? y
?
?
绕任一点(x0,y0)的旋转变换公式为:
?x’=xcos(θ )- ysin(θ) - x0cos(θ)+y0sin(θ)+x0
y’=xsin(θ)+ycos(θ) - x0sin(θ) - y0cos(θ)+y0
?
图像旋转的实现
1.图像旋转的正变换
???????? For j = 0 To h - 1
??? ?????????For i = 0 To w - 1
???? ??????????x = i * Cos(c) +j * Sin(c)???? ‘c为绕原点旋转角度
?????????????? y = -i * Sin(c) + j * Cos(c)???? ???
???? ??????????Picture1.PSet (x,y), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
?? ??????????Next i
Next j
2.图像旋转的逆变换
???????? For x = 0 To wh – 1???? ‘wh、ww为窗口高度与宽度
??? ?????????For y = 0 To ww - 1
???? ??????????i = x * Cos(c) - y * Sin(c)
??????? ???????j = x * Sin(c) +y * Cos(c)
??????? ???????If i 0 Or j 0 Or i w - 1 Or j h - 1 Then
?????????????? ?????Picture1.PSet (x, y), picture1.BackColor
???????? ??????Else
???????? ???????????Picture1.PSet (x, y), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
???????? ?????
文档评论(0)