忙了N久长时间没有更新博客了,追问的人很多,你们赢了,上来分享下最近做的图像相关。
目标是要求我做一个全能扫描王一样的应用,前前后后需求改了好几版,分开来每种方案都能实现,合并起来想全能谈何容易。
其实最终目标就是找到图片中的纸张并还原成标准矩形么,前前后后做了三个版本,把经历的坑分享一下,具体代码就保密了,毕竟做的是产品,要为对方老板负责。
方案一: 自适应二值,查找最大轮廓,霍夫直线检测四边,求出四边顶点,仿射变换
坑:复杂环境下很容易接收乱七八糟的线段从而将四边拟合出错
方案二:canny求出轮廓,查找最大轮廓,逼近轮廓成近似矩形,仿射变换
坑:canny求到的图黑白按照原图色彩来的,要多判断一次是否要取反
方案三:差影法求出目标位置,逼近成近似矩形,仿射变换
坑:这个没什么坑,就是看运气,原始背景图质量好点就没什么问题的
综上,最后一个大坑是仿射和透射的区别,
原理不说了,一句话,透射是四个点的对应关系,ABCD对应abcd。
仿射在opencv或emgucv里是三个点的,ABCD对应abcd的话,不看C的,无论你的点集合多长
只看第一二点和最后一点,只看第一二点和最后一点,只看第一二点和最后一点
还有一个小贴士:宽和