斑点检测(Blob Detection)
在图像的明亮区域上,斑点在暗或暗上是明亮的。在此示例中,使用3种算法检测blob。在这种情况下使用的图像是Hubble eXtreme Deep Field。图像中的每个亮点都是恒星或星系。
高斯拉普拉斯(LoG)
这是最准确,最慢的方法。它计算高斯图像的拉普拉斯算子,并连续增加标准偏差并将它们堆叠在一个立方体中。 Blob是此多维数据集中的局部最大值。由于卷积期间较大的内核大小,检测较大的斑点尤其较慢。仅检测到深色背景上的明亮斑点。有关用法,请参阅skimage.feature.blob_log()。
高斯差分(DoG)
这是LoG方法的更快近似。在这种情况下,图像随着标准偏差的增加而模糊,并且两个连续模糊图像之间的差异被堆叠在立方体中。该方法具有与用于检测较大斑点的LoG方法相同的缺点。再次假设Blob在黑暗中是明亮的。有关用法,请参阅skimage.feature.blob_dog()。
Hessian(DoH)的决定因素
这是最快的方法。它通过在图像的Hessian行列式矩阵中查找最大值来检测斑点。检测速度与blob的大小无关,因为内部实现使用盒式过滤器而不是卷积。在黑暗和明亮的斑点上检测到明亮的亮度。缺点是没有准确检测到小斑点(<3px)。请参阅skimage.feature.blob_doh()
from math import sqrt
from skimage import data
from skimage.feature import blob_dog, blob_log, blob_doh
from skimage.color import rgb2gray
import matplotlib.pyplot as plt
image = data.