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来说还不错)。更真实的是,我认为可能有更好的方法,然后自己做。