Python 3.x 如何确定图片上不同形状的数量?

Python 3.x 如何确定图片上不同形状的数量?,python-3.x,image-processing,neural-network,astropy,Python 3.x,Image Processing,Neural Network,Astropy,这里我有两个物体/星星的图像: 我有数百张像这样的照片,来自NASA的桅杆档案。(角不是星星,只是错误,一个星星在顶部,另一个在底部)。 我应该使用什么算法来确定一张图片中对象的数量(在本例中为星星)?对于人类来说,很明显有两个对象,但我想用Python实现这种检测。 以下是一张只有一颗星的照片,仅供参考: (图片是使用PyKE从FITS文件生成的。)您可以应用阈值并使用open cv分析连接组件(组)的数量。 例如: import cv2 src = cv2.imread('/path/to

这里我有两个物体/星星的图像: 我有数百张像这样的照片,来自NASA的桅杆档案。(角不是星星,只是错误,一个星星在顶部,另一个在底部)。 我应该使用什么算法来确定一张图片中对象的数量(在本例中为星星)?对于人类来说,很明显有两个对象,但我想用Python实现这种检测。 以下是一张只有一颗星的照片,仅供参考:


(图片是使用PyKE从FITS文件生成的。)

您可以应用阈值并使用open cv分析连接组件(组)的数量。 例如:

import cv2
src = cv2.imread('/path/to/your/image')
ret, thresh = cv2.threshold(src,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
connectivity = 8 #also diagonal neighbors, choose 4 if you want just horizontal and vertical neighbors. 
# Analysis of the binary image
output = cv2.connectedComponentsWithStats(thresh, connectivity, cv2.CV_32S)
n_groups=output[2].max()
为了消除噪音,您可以决定不考虑连接像素数小于TH的组(例如,从您上传的图像中,我会选择TH=4)