前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DoG斑点检测

DoG斑点检测

作者头像
裴来凡
发布2022-05-28 16:51:13
3610
发布2022-05-28 16:51:13
举报
文章被收录于专栏:图像处理与模式识别研究所
代码语言:javascript
复制
import cv2
from numpy import sqrt
from skimage.color import rgb2gray
from matplotlib import pylab as pylab
from skimage.feature import blob_dog, blob_log, blob_doh
im=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
im_gray=rgb2gray(im)#将彩色图片转换为灰度图片
dog_blobs=blob_dog(im_gray,max_sigma=30,threshold=0.1)#DoG斑点检测
dog_blobs[:,2]=sqrt(2)*dog_blobs[:,2]
blobs_list=[dog_blobs]
colors=['lime']
titles=['Difference of Gaussian']
sequence=zip(blobs_list,colors,titles)
fig,axes=pylab.subplots(2,2,figsize=(20, 20),sharex=True,sharey=True)
axes=axes.ravel()
axes[0].imshow(im,interpolation='nearest')
axes[0].set_title('original image',size=30),axes[0].set_axis_off()
for idx, (blobs,color,title) in enumerate(sequence):
    axes[idx+1].imshow(im,interpolation='nearest')
    axes[idx+1].set_title('Blobs with'+title,size=30)
    for blob in blobs:
        y,x,row=blob
        col=pylab.Circle((x,y),row,color=color,linewidth=2,fill=False)
        axes[idx+1].add_patch(col),axes[idx+1].set_axis_off()
pylab.tight_layout()
pylab.show()

算法:DoG斑点检测类似于LoG。DoG在每层金字塔多做一次高斯操作,但通过减法取代LoG核的计算过程,显著减少了运算次数,大大节省了运算时间。

  • 首先使用不同尺度的高斯算子对图像进行平滑
  • 然后计算相邻尺度下平滑图像的差分图像(DoG空间)
  • 最后,在DoG空间寻找极值点
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档