我提到了这个SOF链接count colored dots in image 但这是彩色链接,所以这里的任何人都可以指导我如何处理这个并计算白色背后的黑点。
答案 0 :(得分:4)
thredhold
使用THRESH_BINARY_INV
标记,更改为black-background-white-foreground。findContours
,按区域(按contourArea
计算)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
答案 1 :(得分:-1)
您指向的答案将彩色图像转换为灰度,因此您应该将HoughCircles()
应用于图像并找出结果数组的长度。