寻找黑色背景图像中白色区域
在图片处理中,有时我们需要统计图像中特定区域或目标的数量。本例中,目标是从黑色背景的图像中统计白色区域的数量。
给你提供的代码主要包含以下步骤:
图像二值化使用最小包围圆获取培养皿区域掩膜、腐蚀和膨胀以去除噪点
对于计数白色区域,一种思路是遍历像素并查找白色点。然而,这可能会很繁琐。解决方案是使用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 = 1for 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
登录后复制
这样,图像中的白色点就会被识别并标记。
以上就是如何利用OpenCV统计黑色背景图像中的白色区域数量?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2182819.html