登录
首页 >  文章 >  python教程

如何利用OpenCV统计黑色背景图像中的白色区域数量?

时间:2024-12-06 18:19:04 432浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何利用OpenCV统计黑色背景图像中的白色区域数量?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

如何利用OpenCV统计黑色背景图像中的白色区域数量?

寻找黑色背景图像中白色区域

在图片处理中,有时我们需要统计图像中特定区域或目标的数量。本例中,目标是从黑色背景的图像中统计白色区域的数量。

给你提供的代码主要包含以下步骤:

  • 图像二值化
  • 使用最小包围圆获取培养皿区域
  • 掩膜、腐蚀和膨胀以去除噪点

对于计数白色区域,一种思路是遍历像素并查找白色点。然而,这可能会很繁琐。解决方案是使用cv2.connectedcomponentswithstats函数:

_, bin_img = cv2.threshold(dilation, 0, 1, cv2.thresh_binary)

# 搜索图像中的连通区域
ret, labels, stats, centroid = cv2.connectedcomponentswithstats(bin_img, connectivity=4)
  • labels:连通区域的标签
  • stats:每个连接组件的统计数据,包括其矩形边界
  • centroid:每个连接组件的重心

通过遍历stats中的统计数据,可以计算每个连接组件的边界框并绘制矩形。可以进一步识别面积超过一定阈值的区域,将其视为单个点。

idx = 1
for stat in stats:
    if (stat[2] - stat[0]) > bin_img.shape[0] / 2:
        continue
    cv2.rectangle(original_img_cbk, (stat[0], stat[1]), (stat[0] + stat[2], stat[1] + stat[3]), (0, 0, 255), 2)
    cv2.putText(original_img_cbk, str(idx), (stat[0], stat[1] + 25), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (255, 25, 25), 2)
    idx += 1

这样,图像中的白色点就会被识别并标记。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>