python写透视挂_OpenCV的Python透视变换

本文介绍了如何利用OpenCV中的鼠标处理功能裁剪图像,并通过单应性和透视变换将倾斜图像的角点映射到目标大小的白色图像上。主要涉及cv2.findHomography()和cv2.warpPerspective()函数的应用,以实现图像的精确变换。作者还分享了部分代码片段以供参考。
摘要由CSDN通过智能技术生成

我有一个粗略的解决办法。您可以稍后修改它。在

我使用OpenCV中可用的鼠标处理操作裁剪给定热图中的感兴趣区域。在

(我刚才是不是说我用鼠标裁剪了这个区域?)是的,是的。在OpenCV SEE THIS中了解鼠标函数的更多信息。此外,在这方面还有许多其他的问题可以帮助你

使用这些函数,我可以获得以下结果:

6kLUp.jpg

现在来谈谈你的问题。我使用单应性原理,取上面图像的角点,并将其用于一定大小的“白色”图像。为此,我使用了cv2.findHomography()函数。在

现在使用OpenCV中的cv2.warpPerspective()函数,我可以获得以下结果:

RMqj6.png

现在您可以根据需要缩放到该图像。在

代码:

我还附上了一些代码片段供您阅读:#First I created an image of white color of a definite size

back = np.ones((435, 379, 3)) # size

back[:] = (255, 255, 255) # white color

接下来,我获得了倾斜图像上的角点pts_src:

^{pr2}$

我希望将上述各点映射到下面给出的点“pts_dst”:pts_dst = np.array([[2.0, 2.0], [379.0, 2.0], [379.0, 435.0],[2.0, 435.0]])

现在我使用单应性原理:h, status = cv2.findHomography(pts_src, pts_dst)

最后利用透视变换将原始图像映射到白色图像。在fin = cv2.warpPerspective(img, h, (back.shape[1],back.shape[0]))

# img -> original tilted image.

# back -> image of white color.

希望这有帮助!我也从这个问题中学到了很多东西。在

注意:输入到“cv2.findHomeography()”的点必须在float中。

有关单应性的更多信息,请访问THIS PAGE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值