矩形检出算法介绍

背景

矩形检出算法即从一副图像中找出候选矩形,不同于hough找圆等算法在opencv中有现成接口,矩形检出算法需要自己手动实现。其常见用途是移动端拍摄文档进行矫正等,近期开发二维码识别时也用到了矩形检出的算法,在此一并做个总结。

常规算法

常规算法也是最直观、大家都能想到的算法(此处搬运别人公众号的内容:https://mp.weixin.qq.com/s/mkRjgQ8XY4L73ovVjF55EQ),其算法流程如下:

1.中值滤波去噪;

2.依次提取不同的颜色通道(BGR)检测矩形;

3.对每一通道使用canny检测边缘或者使用多个阈值二值化;

4.使用findContours函数查找轮廓;

5.使用approxPolyDP函数去除多边形轮廓一些小的波折;

6.找到同时满足面积较大和形状为凸的四边形;

7.判断轮廓中两两邻接直线夹角余弦是否小于0.3(意味着角度在90度附近),是则此四边形为找到的矩形。

此算法仅对边缘区分明显,仅需要找出最外层的矩形时候有效,在矩形区域发生重叠、存在包含关系时便不鲁棒了。

Apriltag中的算法

Apriltag是密西根大学开源的一个视觉基准库,长用于无人机、移动机器人的自主定位,详细原理请见其官网和3篇paper(https://april.eecs.

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
矩形排料算法是一种常用的二维排样算法,其目的是在给定的矩形区域内,尽可能地摆放多个小矩形。目前,常用的矩形排料算法包括贪心算法、回溯算法、遗传算法、禁忌搜索算法等等。其中,最高效的算法会因为问题的不同而异,需要根据实际情况进行选择。下面简单介绍几种常用的算法: 1.贪心算法: 贪心算法是一种简单的启发式算法,它可以在较短的时间内找到一个近似最优解。在矩形排料问题中,贪心算法通常按照某种规则对待放置矩形进行排序,然后逐个将矩形放入容器中,直到无法再放置为止。 2.回溯算法: 回溯算法是一种深度优先搜索算法,在矩形排料问题中可以通过枚举所有可能的放置方案来寻找最优解。具体实现时,可以采用递归的方式对每个待放置矩形进行尝试,并记录当前状态和最优状态。 3.遗传算法: 遗传算法是一种基于生物进化原理的优化算法,在矩形排料问题中可以通过将每个放置方案看做一个个体,通过交叉、变异等操作来产生新的个体,并通过适应度函数来评价每个个体的质量,最终选择适应度最高的个体作为最优解。 4.禁忌搜索算法: 禁忌搜索算法是一种基于局部搜索的优化算法,在矩形排料问题中可以通过设置禁忌表来记录不良决策,并通过一定的策略来避免重复搜索已知解。具体实现时,可以采用局部搜索策略来寻找局部最优解,并通过禁忌表来避免陷入局部最优解。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值