安卓平台上的OpenCV图像处理技术:流畅校正视角

3
我可以按照自动矩形目标透视校正的方式,修正图像中旋转的卡片的透视角度,这个方法很好用且效果良好。但是纠正后的结果出现得很突然,我希望能够平滑地移动卡片,直到它成为全屏幕。抱歉我的描述不够清晰,但你可以在CamScanner中,在感兴趣区域选择活动页面上,点击确认按钮后看到类似的过程。
谢谢您的关注。
1个回答

2
根据您提供的链接上的教程(参见我标记的图像),您有图像的四个角a,b,c,d,并且您的最终目标是将其逐步扭曲变形为目标坐标:a',b',c',d'。但是您希望 逐步 进行此操作,以类似动画的方式显示。假设您想提供5个步骤的动画(步骤越多,动画越平滑,处理时间越长)。
1)使用线性方程在b和b'之间找到4个更加等距的点。将其命名为b1、b2、b3、b4。对所有角落执行此操作,即对a、b、c、d进行操作,并用相同的方式进行命名。
2)现在先对目标a1、b1、c1、d1应用透视变换,然后显示输出作为第一动画步骤。
3)重复以上步骤4次并显示您的图像。
4)最后显示您在a'、b'、c'、d'上的扭曲仿射结果。在这里,您可以提供一些简单而花哨的选项,例如亮度、自动对比度等。
两点:
首先,您可以看到CamScanner中的动画也很慢。
其次,如果要显示平滑而快速的动画,请将图像缩小一半或四分之一,然后应用变换,最后将结果调整回原始尺寸。这将非常快,因为中间步骤是临时的,您不需要显示详细图像。除此之外,您还可以使用近似变换等方法。
祝您好运,编码愉快!

好的!这似乎是一个合乎逻辑的方法。我需要测试一下。我会说出结果。 - hasanghaforian
我认为你的想法是正确的。但是你必须知道 warp-affine 保留平面(它是二维变换)。所以我必须使用 warp-perspective - hasanghaforian
透视变换非常慢。因此,如果我使用它,动画将会非常缓慢。 - hasanghaforian
是的,没错,有两点需要注意:第一,你会发现 CamScanner 中的动画也很慢。第二,如果你想要展示流畅快速的动画,可以将图像缩小一半或四分之一,应用变换,然后再将结果放大回去。这样做非常快速,而且中间步骤都是临时的,不需要显示详细图像。除此之外,你还可以使用近似变换。 - Pervez Alam
1
谢谢!你的想法是正确的,我已经测试过了。我将你的评论添加到了你的答案中,这样可能会对其他人有所帮助。 - hasanghaforian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接