scikit-image库----斑点检测(二十三)

斑点检测(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.hubble_deep_field()[0:500, 0:500]
image_gray = rgb2gray(image)

blobs_log = blob_log(image_gray, max_sigma=30, num_sigma=10, threshold=.1)

# Compute radii in the 3rd column.
blobs_log[:, 2] = blobs_log[:, 2] * sqrt(2)

blobs_dog = blob_dog(image_gray, max_sigma=30, threshold=.1)
blobs_dog[:, 2] = blobs_dog[:, 2] * sqrt(2)

blobs_doh = blob_doh(image_gray, max_sigma=30, threshold=.01)

blobs_list = [blobs_log, blobs_dog, blobs_doh]
colors = ['yellow', 'lime', 'red']
titles = ['Laplacian of Gaussian', 'Difference of Gaussian',
          'Determinant of Hessian']
sequence = zip(blobs_list, colors, titles)

fig, axes = plt.subplots(1, 3, figsize=(10, 5), sharex=True, sharey=True)
ax = axes.ravel()

for idx, (blobs, color, title) in enumerate(sequence):
    ax[idx].set_title(title)
    ax[idx].imshow(image, interpolation='nearest')
    for blob in blobs:
        y, x, r = blob
        c = plt.Circle((x, y), r, color=color, linewidth=2, fill=False)
        ax[idx].add_patch(c)
    ax[idx].set_axis_off()

plt.tight_layout()
plt.show()

在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值