Scikit-Image 有很多方法可用于斑点检测:
高斯拉普拉斯算子 (LoG)
高斯差 (DoG)
Hessian 行列式 (DoH)
这三个都返回一个数组,其中包含找到的组件范围内的单个点:
>>> from skimage import data, feature
>>> img = data.coins()
>>> feature.blob_doh(img)
array([[ 121. , 271. , 30. ],
[ 123. , 44. , 23.55555556],
[ 123. , 205. , 20.33333333],
[ 124. , 336. , 20.33333333],
[ 126. , 101. , 20.33333333],
[ 126. , 153. , 20.33333333],
[ 156. , 302. , 30. ],
[ 185. , 348. , 30. ],
[ 192. , 212. , 23.55555556],
[ 193. , 275. , 23.55555556],
[ 195. , 100. , 23.55555556],
[ 197. , 44. , 20.33333333],
[ 197. , 153. , 20.33333333],
[ 260. , 173. , 30. ],
[ 262. , 243. , 23.55555556],
[ 265. , 113. , 23.55555556],
[ 270. , 363. , 30. ]])
我想使用该信息来生成包含给定组件中所有点的坐标的列表。
我可以自己从种子开始遍历整个图像,然后收集字典中的所有点,关键是blob检测提供的点,但我想除非我使用cython(非常愿意错了,因为我对python还很陌生)。更真实地说,我只是认为可能有比自己做更好的方法。