Emgucv实现高拍仪功能(一)——仿射变换与透射变换

本文介绍了在高拍仪应用中如何利用EmguCV进行图像处理,包括自适应二值化、霍夫直线检测、Canny边缘检测和差影法等方法寻找纸张边界,并通过仿射变换还原成标准矩形。作者分享了在不同方案中遇到的挑战,强调了仿射变换和透射变换的区别,并提供了最终效果的展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

忙了N久长时间没有更新博客了,追问的人很多,你们赢了,上来分享下最近做的图像相关。

目标是要求我做一个全能扫描王一样的应用,前前后后需求改了好几版,分开来每种方案都能实现,合并起来想全能谈何容易。

其实最终目标就是找到图片中的纸张并还原成标准矩形么,前前后后做了三个版本,把经历的坑分享一下,具体代码就保密了,毕竟做的是产品,要为对方老板负责。

方案一: 自适应二值,查找最大轮廓,霍夫直线检测四边,求出四边顶点,仿射变换

坑:复杂环境下很容易接收乱七八糟的线段从而将四边拟合出错

方案二:canny求出轮廓,查找最大轮廓,逼近轮廓成近似矩形,仿射变换

坑:canny求到的图黑白按照原图色彩来的,要多判断一次是否要取反

方案三:差影法求出目标位置,逼近成近似矩形,仿射变换

坑:这个没什么坑,就是看运气,原始背景图质量好点就没什么问题的

综上,最后一个大坑是仿射和透射的区别,

原理不说了,一句话,透射是四个点的对应关系,ABCD对应abcd。

仿射在opencv或emgucv里是三个点的,ABCD对应abcd的话,不看C的,无论你的点集合多长

只看第一二点和最后一点,只看第一二点和最后一点,只看第一二点和最后一点

还有一个小贴士:宽和高要自己判断一下的,opencv或emgucv的宽和高随机的。

最终效果放上,供大伙参考(找四个顶点的问题上我加强过的,商业机密,就不要强人所难了!)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值