在这里,我有两个物体/星星的图像: 我有数百张来自NASA MAST存档的图像。 (角落不是星星,只是错误,一颗星星在顶部,另一颗在底部)。 我应该使用哪种算法来确定一张图片中物体的数量(在本例中为星体)?对于一个人来说,很明显有两个对象,但是我想在Python中实现这种检测。 供参考,这是一张只有一颗星星的照片:
(图片是使用PyKE从FITS文件生成的。)
答案 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之类的示例)。