C++OpenCV图像目标计数——以枣子为例

这篇博客介绍了如何利用C++和OpenCV进行图像目标计数,以枣子为例,虽然实际效果未能完全准确,识别出11个而非12个枣子。内容涉及距离变换的概念,解释了距离变换如何用于区分图像中的前景和背景,并通过实例展示了如何去除图像中的人手手指部分,以找到前景目标中心。作者提供了相关的距离变换参数介绍链接和实战程序结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        现在已经凌晨1点40,睡不着,心血来潮写一篇博客,但是效果一般,图像中有12个枣子,但是只识别出11个:原图如下所示: 

项目中需要用到距离变换,下面简单介绍以下:

距离变换的定义是计算一个图像中非零像素点到最近的零像素点的距离,也就是到零像素点的最短距离。

距离变换的处理图像通常都是二值图像,而二值图像其实就是把图像分为两部分,即背景和物体两部分,物体通常又称为前景目标!通常我们把前景目标的灰度值设为255,即白色,背景的灰度值设为0,即黑色。所以定义中的非零像素点即为前景目标,零像素点即为背景。所以图像中前景目标中的像素点距离背景越远,那么距离就越大,如果我们用这个距离值替换像素值,那么新生成的图像中这个点越亮。具体的应用就是找前景目标的中心~

下面是一个利用距离变换去除人手的手指部分的例子。

显然,手指距零像素点的距离比手掌距零像素点的距离短,所以经过距离变换后的图像在手指部位的像素值较小(如下图“dst”窗口图像所示),通过设定合理的阈值对距离变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI炮灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值