如何确定图片上不同形状的数量?

时间:2018-08-26 10:14:32

标签: python-3.x image-processing neural-network astropy

在这里,我有两个物体/星星的图像: picture of two stars 我有数百张来自NASA MAST存档的图像。 (角落不是星星,只是错误,一颗星星在顶部,另一颗在底部)。 我应该使用哪种算法来确定一张图片中物体的数量(在本例中为星体)?对于一个人来说,很明显有两个对象,但是我想在Python中实现这种检测。 供参考,这是一张只有一颗星星的照片: Image of one star

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

1 个答案:

答案 0 :(得分:1)

您可以应用阈值并使用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之类的示例)。