社区
机器视觉
帖子详情
图象旋转后失真如何解决???
godmangj
2003-07-20 08:48:31
图象在旋转后,由于计算的误差,转化后的点不能与原来的点一一对应,
出现图象的失真,有没有什么算法可以解决?
...全文
1362
19
打赏
收藏
图象旋转后失真如何解决???
图象在旋转后,由于计算的误差,转化后的点不能与原来的点一一对应, 出现图象的失真,有没有什么算法可以解决?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shenghuafen
2003-09-12
打赏
举报
回复
正在学习图像处理,用matlab做了一下处理,觉得蛮有意思的。
ThenLong
2003-09-01
打赏
举报
回复
gz 上面的都是牛人,pf
yyt98032
2003-08-01
打赏
举报
回复
呵呵,我现在在研究这个问题,并且找到了完美的解决方法,几乎就没有变形 。是用的一中全新的算法,没有用插值法
jesjes
2003-07-25
打赏
举报
回复
什么是3点纠正?还有卫片?能不能共享一下你的劳动成果?
liulanghai
2003-07-24
打赏
举报
回复
当然可以,这就是所谓的纠正。我也做完了,假如上面的旋转自由变换做完了,1个小时,这就搞定了,就是界面费点功夫。3点纠正嘛。但是卫片的纠正其实是个很复杂的问题。但都差
不多。
jesjes
2003-07-24
打赏
举报
回复
如果根据一幅参考图像来调整当前图像,存在平移,缩放,旋转,是否还可以这样做呢?
liulanghai
2003-07-22
打赏
举报
回复
哦,对了,你先放大数据,比方说*8000.然后计算旋转结果/8000。即使有误差,也不大了吧。我做的好像没有怎么失真。
liulanghai
2003-07-22
打赏
举报
回复
呵呵,正好碰到我呀,我做了。
双线性和双3次我估计速度上跟不上的,假如你觉得转起来停滞的效果也可以,你可以考虑采用。另外小图像的旋转速度上也是可以接受的。但是略大点图像1024*1024*3的图像,你看看photoshop都不是实时更新的。我觉得小图像的旋转,还是可以接受的,一般的旋转算法就可以了,但略做优化,速度是可以实时的。最好采用对DIB直接旋转成DIB,不要对象素旋转然后
在组成DIB,确定时,重新对像素阵列旋转。大图像比方说100M-800M旋转,你要分块处理,不
然内存和速度都将不许可。图像的数据组织也将影响旋转的算法,思想都差不多。
我做的和photoshop自由变换效果基本一样。
wangweixing2000
2003-07-22
打赏
举报
回复
是真是避免不了的,原理都很简单,这方面的算法也很多自己改进改进!网上到处都是!
寻开心
2003-07-21
打赏
举报
回复
楼主的意思大概是和以前的一个朋友的问题相近。
他是说,把一个图片连续旋转,旋转一圈,回到初始状态,旋转后的图片和最初的图片不一样了。
这个解决方法是,始终保留你的初始图象,旋转都是从初始图象开始。
例如,图象一次旋转45度,第二次旋转90度的操作,不是在第一次旋转45度的基础上再旋转45度,而是在原始图片上直接旋转90度。
至于每次旋转当中的图象的精度的问题,如同Riemann的说法,要保持精度就要使用好的插值办法
jackiesun
2003-07-21
打赏
举报
回复
用matlab的旋转试试。
寻开心
2003-07-21
打赏
举报
回复
其实在图象处理的时候,大多数情形下,都是假定原始图象不是一个离散点图象,而是连续的图象,像素点的颜色表示的是像素点在图象上所占据的矩形区域的中心点的颜色,整个连续图象在两个像素点中间是使用插值方式实现连续的,插值办法就是上面所说的。
无论移动,缩放,还是旋转,确定新图象点的颜色,都是根据新像点矩形在老图象上占据的区域内部的颜色的平均值来确定的。
基本原理就是这样,对于不同的应用有不同的简化方式和处理手段。
寻开心
2003-07-21
打赏
举报
回复
道理相当于新点的位置对应于原始图象的一个位置,可是该位置不是恰好位于像素点上,而是位于四个像素的中间位置,因此需要使用这四个像素的颜色插值来获得。
双线性就是沿着两个互相垂直的方向,都使用线性的插值。
标准的公式,不是上面给的,标准的公式应该是:
C[xi, yi], C[xi+1, yi]之间线性插值得到Cx1
C[xi, yi+1], C[xi+1, yi+1]之间线性插值得到Cx2
上面这两步插值都是使用fx作为插值因子
然后Cx1和Cx2之间再次线性插值,这个步骤使用fy作为插值因子
最终的公式是:
c(x,y) = (1-fy) * ( (1-fx)*c(xi, yi) + fx*c(xi+1, yi) ) +
fy * ( (1-fx)*c(xi,yi+1) + fx*c(xi+1,yi+1) )
这是先X方向后Y方向,也可以倒过来处理,效果不同,差异很小。
寻开心
2003-07-21
打赏
举报
回复
反算
给定一个旋转后的点的坐标Xn,Yn根据反向旋转计算得到在原始图象上的位置Xo, Yo
如果Xo,Yo的坐标非整数,则假定Xo = Xi + fx; Yo = Yi + fy
其中Xi和Yi都是整数,fx和fy都是0到1之间的小数,那么
该点的
颜色数值 C[Xn,Yn] = 1/2* (
C[Xi, Yi]*(1-fx)+ C[Xi+1, Yi]*fx
+ C[Xi,Yi+1]*(1-fy)+ C[Xi+1,Yi+1]*fy
}
kaolaxiong
2003-07-21
打赏
举报
回复
那位高手给段插值算法的代码,参考1下
HUNTON
2003-07-21
打赏
举报
回复
用双线性插值应该比较普遍吧
Riemann
2003-07-20
打赏
举报
回复
PhotoShop哪有那么完美,它也有失真,不过是真度较小罢了。楼主由三次样条插值试试看,应该效果会改善不少。
godmangj
2003-07-20
打赏
举报
回复
插值算法固然可以降低失真,但有没有更完美的算法实现不失真,我看过PhotoShop中的旋转
无论你如何旋转,图象都不会失真!是如何实现的呢?那位高手可以指教?
lsywinn
2003-07-20
打赏
举报
回复
这个问题对于非矢量图肯定是要失真的,不过你可以采用比较好的插值算法来降低失真,一般二次插值和最小二乘法用的比较多,可以查看一些图象处理方面的书籍
图像质量评价matlab源代码
图像质量评价matlab代码,在此分享 图像质量评价matlab代码,在此分享 图像质量评价matlab代码,在此分享
Thumbnailator.rar
Thumbnailator 是一个用来生成图像缩略图、裁切、
旋转
、添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。
图像变换与校正:讨论
解决
图像形状
失真
问题
投影变换包括的情况很多,有可能变换前后图像的形状发生了很大的改变,如对边不在平行,或者发生了透视畸变等,这时可以使用投影变换使其恢复原状。其步骤与仿射变换类似,首先计算投影变换矩阵,然后计算投影变换参数,最后将投影变换矩阵映射到对象上。假设这个点在二维平面上,沿x轴方向放大sx倍,沿y轴方向放大sy倍,那么变化后的该点的坐标记为ps,如下式所示。把平移、
旋转
和缩放结合起来,在halcon中可以使用仿射变换的相关算子。为了校正图像在拍摄中的
失真
问题,可以对图像进行一些简单的几何变换,如平移、
旋转
和缩放等。
数字图像处理--空间变换
在对图像进行空间变换的过程中,典型的情况是在对图像进行放大,
旋转
处理的时候,图像会出现
失真
的现象。这是由于在变换之后的图像中,存在着一些变换之前的图像中没有的像素位置。处理这一问题的方法被称为图像灰度级插值。常用的插值方式有三种:最近邻域插值、双线性插值、双三
旋转
图片包括png图片,不会出现
失真
情况
/** * 图片
旋转
处理 * @param string $src 图片本地路径 * @param integer $degrees
旋转
角度,90逆时针
旋转
90度,-90顺时针
旋转
90度 */ public function imgturn($src,$degrees) { $ext = pathinfo($src)['extension'...
机器视觉
4,499
社区成员
15,347
社区内容
发帖
与我相关
我的任务
机器视觉
图形图像/机器视觉
复制链接
扫一扫
分享
社区描述
图形图像/机器视觉
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章