专栏首页贾志刚-OpenCV学堂使用OpenCV检测坑洼

使用OpenCV检测坑洼

来源:公众号 小白学视觉 授权

本文将向大家介绍如何使用OpenCV库进行坑洼检测。

为什么要检测坑洼?

坑洼是道路的结构性指标,事先发现坑洼地可以延长高速公路的使用寿命,防止事故的发生,同时降低死亡率。

一种可行的解决方案是构建自动坑洞检测系统,该系统可通过云服务发送实时信息以提醒管理结构,来杜绝每天人工检查所产生的不必要花费。

OpenCV是一个帮助研究人员处理图像问题的库,该库提供了大量处理图像的方法。OpenCV的使用将有助于坑洼检测。

图像的基础知识

在了解代码之前,必须先了解图像的工作原理。

图像一般被划分为很多像素,每个像素的值范围介于 0 和 255 之间。转换为灰度时,范围从 0 到 1。

大小为28x28的灰度图像

可以操作图像的每个像素。例如,如果希望随机像素具有另一个值,则有两种方法。第一种是通过直接更改矩阵中的点来更改这一点。第二种是使用内核东西来实现。

内核是具有一定值的小矩阵,通常为 3x3,叠加在图像上充当滤波器。

(40*0) + (42*1) + (46*0) + (46*0) + (50*0) + (55*0) + (52*0) + (56*0) + (58*0) = 42

上图显示了图像与内核卷积的结果。卷积是通过数值的相乘相加得到输出结果的过程。卷积可以实现图像的模糊,例如下图所示。

所选内核对输入图像进行了模糊

阈值

阈值的概念很简单,给定一个图像,绘制其直方图并选择一个值。比该值大的每个像素都将变为黑色,比该值小的每个像素将变为白色,具体如下所示。

根据照明选择不同阈值的自适应阈值方法(这一方法可用于检测坑洞)。更多算法可以在OpenCV阈值文档中找到。

边缘检测

边缘检测算法将在图像中找到边缘。Canny是一种边缘检测算法,它将检测图像的边缘,并输出仅具有轮廓的图像。进一步的解释可以在这里找到。

使用不同参数应用的 Canny 图像

坑洼检测

我们可以将前面介绍的内核+阈值+边缘检测结合起来,并在道路上找到坑洼。

图1显示了从道路上拍摄的图像,该道路的坑洼直接位于汽车前

图2显示了应用了阈值处理的图像,坑洼和清洁街道区域被突出显示。

Canny应用于图片3,其中可以找到轮廓。在这里,可以创建一个算法,以便查看轮廓是否为坑洞。

图4显示了选中坑洞的图像。

最终图像,带有绿色标记的区域为坑洞的位置。

更多坑洼检测的结果如下图所示。

使用OpenCV进行坑洞检测并不难。此外,我们可以构建检测系统并将其与云和地图服务结合,以便提供有关选定区域坑洞的实时信息。

本文分享自微信公众号 - OpenCV学堂(CVSCHOOL),作者:花生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 图像二值化方法汇总介绍

    ImageJ中图像二值化方法介绍 概述 二值图像分析在对象识别与模式匹配中有重要作用,同时也在机器人视觉中也是图像处理的关键步骤,选择不同图像二值化方法得到的结...

    OpenCV学堂
  • 当CV碰上无人机:ICCV 2019 VisDrone挑战赛冠军解决方案解读

    如今,配备摄像头的无人机或通用无人机已经广泛地应用在农业、航空摄影、快速交付、监视等多个领域。

    OpenCV学堂
  • 五分钟学会C++高效图表绘制神器调用

    给大家介绍一个C++上简单高效的图表绘制与数据可视化的神器 matplotlib-cpp。先交代我的系统配置跟软件版本信息

    OpenCV学堂
  • 使用OpenCV检测坑洼

    坑洼是道路的结构性指标,事先发现坑洼地可以延长高速公路的使用寿命,防止事故的发生,同时降低死亡率。

    小白学视觉
  • C++ OpenCV线性混合操作

    void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, do...

    Vaccae
  • 精品连载|“深度学习与计算机视觉”学习笔记——应用篇

    图像分类,这个是计算机视觉的基础任务,主要包含通用图像分类和细粒度图像分类,其中细粒度分类,需进一步从大类中进行细分类,比如识别狗是哪个品种。

    灯塔大数据
  • 英特尔最新研究:从热图像中进行人脸识别

    热图像是否足够详细,可以使AI模型识别人的面部特征?这就是英特尔研究人员在最近的第12届国际人类系统交互会议上提出的一个问题。他们研究了在可见光数据上训练的模型...

    AiTechYun
  • GitHub:图像分割最全资料集锦

    https://github.com/mrgloom/awesome-semantic-segmentation

    Amusi
  • 腾讯提前批机器学习+快手算法岗

    3、问了比赛中一些细节,比如说如何处理特征,如何评价特征根据什么添加特征、损失函数是什么;

    牛客网
  • 基于深度学习的图像增强综述

    图像增强的定义非常广泛,一般来说,图像增强是有目的地强调图像的整体或局部特性,例如改善图像的颜色、亮度和对比度等,将原来不清晰的图像变得清晰或强调某些感兴趣的特...

    Natalia_ljq

扫码关注云+社区

领取腾讯云代金券