博主认识的几种线段检测算法有:Hough变换法、LineSegementDetector (OpenCV3中加入的算法)、FastLineDetector(在opencv的contribute模块中)。LSD算法的速度让人望而却步,FLD算法一大堆参数很难调优,并且速度并没有特别快。在使用这些算法的时候或多或少都遇到了问题,于是EDlines算法浮现在眼前,快速,并且效果不错。 Ed就是EdgeDraw的缩写…

说起脚本语言调用opencv,我们通常会想到python。如果说要在更小的系统中使用脚本语言,我们会想到lua。如果说用lua进行图像处理,我们肯定会想到大名鼎鼎的torch。torch中的image模块重写了opencv,封装了lua接口,但是如果我们不想修改opencv如此庞大的源码,又想像python调用opencv那样简单直接,那应该怎么做呢?

在正式开始介绍之前,想展示一段简答的代码,来告诉大家即将要做的事情是什么。(也是假人以渔了^_^)…

OpenCV4.0.0正式release了,其中加入了二维码识别功能,有幸博主最近开始折腾二维码识别,发现二维码的核心就是那三个定位点和辅助对齐点。ZXing和OpenCV都是通过二维码定位点的11311来进行定位的,这是利用了二维码最显著的特征。但是博主会处理一些变态的情况,比如过曝光到11311定位点无法找到(即图像中定位点的黑白间隔不是1:1:3:1:1),于是就需要通过其它方法来找定位点了。一个标志识别库摆在眼前:AprilTag。(OpenCV中集成了类似的库,似乎叫做ARTag,没研究过)

AprilTag诞生于2011年的一篇论文,2016年出了AprilTag2,但是16年的论文感觉没讲啥,再加上看的cpp代码是2013年的,于是这篇博客就对着2013版本来讲好了,我们开始吧。…