• 计算机视觉40例之案例05物体计数


    导读】本文是专栏《计算机视觉40例简介》的第5个案例《物体计数》。该专栏简要介绍李立宗主编《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书的40个案例。

    目前,该书已经在电子工业出版社出版,大家可以在京东、淘宝、当当等平台购买。

    大家可以在公众号“计算机视觉之光”回复关键字【案例05】获取本文案例的源代码及使用的测试图片等资料。

    针对本书40个案例的每一个案例,分别录制了介绍视频。如果嫌看文字版麻烦,可以关注公众号“计算机视觉之光”直接观看视频介绍版。

    本文简要介绍书中物体计数这一案例,该案例的演示如图1所示。图中左侧图像是细胞图,右侧图像是计数结果。

    图1 物体计数演示

    物体计数的基本流程图如图2所示。其中的关键步骤包含:预处理、查找轮廓、筛选轮廓、绘制序号等。

    图2 流程图

    下面对其中涉及到的主要知识点做一个简单介绍。

    1、计算图像的中心点

    通过介绍原理、逐步演示的方式得到了图3的中心点(质心)。

    图3 计算质心

    2、获取图像的中心点

    OpenCV提供了函数cv2.moments()来获取图像的moments特征。使用该函数,能够非常方便地获取图像的质心(中心点)。图4是通过函数cv2.moments()获取的质心。

    图4 获取质心

    3、按照面积筛选前景对象

    查找图像轮廓时,会查找图像内所有的对象的轮廓。也就是说,不仅仅会把图像内正常对象的轮廓查找到,也会把一些噪声的轮廓查找到。所以,在针对图像内的对象计数时,我们并不需要把所有的轮廓都计算在内,而仅仅计算大于一定面积的轮廓个数。

    函数cv2.contourArea()用于计算轮廓的面积,使用该函数能够筛选出符合大小的对象,将较小的对象排除在计数之外。

    图5 筛除较小对象

    在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从算法原理、实现流程等角度系统深入地介绍了该案例的理论基础和实现过程,并对具体的代码实现进行了细致的介绍与解释。欢迎大家阅读第6章《物体计数》获取详细内容。

    《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。

  • 相关阅读:
    node js V12.18.4下载
    Win11怎么安装语音包?Win11语音包安装教程
    MySQL夺命连环15问,你能坚持到第几问?
    SpringSecurity OAuth2 配置 token有效时长
    微信小程序入门
    go实现优先级channel
    【NLP】第 6 章:XGBoost 超参数
    解决requests库中的期限处理问题:从404到异常再到修复
    【go入门】Go Module, GOPATH 与工作空间
    SpringBoot集成SpringSecurity从0到1搭建权限管理详细过程(认证+授权)
  • 原文地址:https://blog.csdn.net/superdont/article/details/126214325