爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: lysx

[求助] 【已解决】图像旋转(转帖加求助)

[复制链接]

新浪微博达人勋

 楼主| 发表于 2014-9-18 10:33:30 | 显示全部楼层
言深深 发表于 2014-9-18 10:27
你这个是旋转图像还是,旋转矩阵?数组的大小又不改变又是什么意思呢?不是很懂···

额。。。哎呀,可能我没有表达清楚。旋转图像和矩阵没有区别吧,只要把矩阵中每一个位置上的值看做是图像上每一个位置上的像素值就ok了
举例:旋转矩阵(图像)之后,把图1变成了图2, 我现在最为困惑的的是由图2怎么变到图3?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-9-18 10:35:52 | 显示全部楼层
言深深 发表于 2014-9-18 10:27
你这个是旋转图像还是,旋转矩阵?数组的大小又不改变又是什么意思呢?不是很懂···

就是怎么把旋转出去的部分裁剪掉?
另外,C是大一时学的,现在N多年不用了,C++也没了解过。所以想先请教一个很小的问题:
int *width  是不是定义了一个整型的指针变量呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-18 10:37:44 | 显示全部楼层
lysx 发表于 2014-9-18 10:33
额。。。哎呀,可能我没有表达清楚。旋转图像和矩阵没有区别吧,只要把矩阵中每一个位置上的值看做是图像 ...

根据我这几天的尝试,想要旋转之后还用原来的网格,那样的话你的图形绝对会产生褶皱。
我的方法可以达到图像旋转,但是矩阵肯定变了,和你的要求不大一样,而且计算量有些大。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-9-18 10:53:46 | 显示全部楼层
lqouc 发表于 2014-9-18 10:37
根据我这几天的尝试,想要旋转之后还用原来的网格,那样的话你的图形绝对会产生褶皱。
我的方法可以达到 ...

刚刚我试着把代码转为fortran了,对于一个256*140的矩阵,计算蛮快的!当然在赋值的时候我还没有采用任何插值技术,这是我准备改进或者补充的内容。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-9-18 11:58:04 | 显示全部楼层
lysx 发表于 2014-9-18 10:33
额。。。哎呀,可能我没有表达清楚。旋转图像和矩阵没有区别吧,只要把矩阵中每一个位置上的值看做是图像 ...

我感觉应该是这一步,即先旋转,旋转之后再根据限定范围删掉区域外面的就可以了。
1111.png

关于空间点的旋转其实可以有更简单的办法的,即推算任意空间点与新坐标之间的函数关系,借助函数关系,直接写程序即可。



3333.png

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-9-18 13:02:19 | 显示全部楼层
言深深 发表于 2014-9-18 11:58
我感觉应该是这一步,即先旋转,旋转之后再根据限定范围删掉区域外面的就可以了。

不管原帖中算法介绍部分说的有多复杂,其实本质上和您的思路是一致的。
至于if语句,因为x0和y0(原矩阵中的坐标)是由新矩阵中的坐标(x和y)构造的,由于新矩阵的空间范围比原始矩阵大,所以才要判断x0和y0是否满足那个条件。完成两层循环后,新矩阵中经过if判断的被赋值为原矩阵中的值,未通过判断的为0值。所以并没有图像的裁剪。我的理解对吗,深深?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-9-18 14:16:38 | 显示全部楼层
lysx 发表于 2014-9-18 13:02
不管原帖中算法介绍部分说的有多复杂,其实本质上和您的思路是一致的。
至于if语句,因为x0和y0(原矩阵 ...

额,我差不多明白你的意思了···
晕,其实不需要考虑矩阵的大小的,你希望得到的是矩形的位置坐标,而不是对矩阵进行旋转。将矩阵里面的每一个坐标进行变换就可以了啊,不管你怎么旋转,变换前后坐标点的个数应该是一定的,不同的是矩阵里面的数值不一样了。旋转之后,再根据范围去掉不满足条件的点就可以了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-9-18 14:19:00 | 显示全部楼层
言深深 发表于 2014-9-18 14:16
额,我差不多明白你的意思了···
晕,其实不需要考虑矩阵的大小的,你希望得到的是矩形的位置坐标,而 ...

这个范围好确定吗?我暂时思路有一点点,但不是很清晰
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-9-19 08:50:42 | 显示全部楼层
lysx 发表于 2014-9-18 14:19
这个范围好确定吗?我暂时思路有一点点,但不是很清晰

范围不是你提前确定好的吗?初始矩阵的范围应该就是吧。此外,如果你需要重新给定范围的话也是可以的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-9-19 18:15:06 | 显示全部楼层
言深深 发表于 2014-9-19 08:50
范围不是你提前确定好的吗?初始矩阵的范围应该就是吧。此外,如果你需要重新给定范围的话也是可以的。

比如一个矩阵大小为253*140,旋转之后变为270*181这样的矩阵。那么我要在新矩阵中如何提取数据呢?尽管二者的中心是重合的。但没一点距离中心点的距离总是相差0.5
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表