导 读 本文主要介绍基于OpenCV传统方法实现密集圆形分割与计数应用,并给详细步骤和代码。 背景介绍 实例图片来源于网络,目标是分割下图中圆形目标并计数。 本文实现效果如下: 实现步骤 【1】灰度转换 + 均值滤波 + 二值化,得到参考背景img = cv2.imread('src.jpg')cv2.imshow("src",img)gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)cv2.imshow("gray",gray)blur = cv2.medianBlur(gray,7)cv2.imshow("blur",blur)_,thres = cv2.threshold(gray, 199, 255, cv2.THRESH_BINARY_INV )cv2.imshow("thresh",thres) 【2】对灰度图做拉普拉斯变换,提取边缘,并做阈值分割lap =cv2.Laplacian(gray, -1, ksize = 5)cv2.imshow("laplacian",lap)_,lap_thres = cv2.threshold(lap, 250, 255, cv2.THRESH_BINARY)cv2.imshow("lap_thres",lap_thres) 【3】将上图做膨胀操作,增粗边缘kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))dilation = cv2.dilate(lap_thres,k
………………………………