如何使用 python 和 Opencv 计算图像中的点数?

2024-04-17

I want to count number of dots in an image. The image looks like Dots Image

我参考了这个 SOF 链接计算图像中的彩色点 https://stackoverflow.com/questions/44439555/count-colored-dots-in-image但这是针对彩色链接的,所以这里的任何人都可以指导我如何处理这个问题并从白色的背面数出黑点。


  1. thredhold using THRESH_BINARY_INV标志,更改为黑色背景白色前景。
  2. findContours,按面积过滤轮廓(计算公式为contourArea)
  3. 你懂了

import cv2
gray = cv2.imread("dots.jpg", 0)

## threshold
th, threshed = cv2.threshold(gray, 100, 255,cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)

## findcontours
cnts = cv2.findContours(threshed, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[-2]


## filter by area
s1= 3
s2 = 20
xcnts = []
for cnt in cnts:
    if s1<cv2.contourArea(cnt) <s2:
        xcnts.append(cnt)

print("Dots number: {}".format(len(xcnts)))
#Dots number: 23

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 python 和 Opencv 计算图像中的点数? 的相关文章

随机推荐