• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-04-27
  • 语言: Matlab
  • 标签: MATLAB  log  斑点检测  

资源简介

log算法检测斑点程序,程序可读性好,检测结果不错,可自行加载图片进行检测

资源截图

代码片段和文件信息

function [points] = log_Blob(imgo_nb_blobs)
    % 功能:提取LoG斑点
    % 输入: 
    %      img –输入的图像
    %       o_nb_blobs -需要检测的斑点区域的数量
    % 输出:
    %       points -检测出的斑点
    % 参考文献:
    % Lindeberg T. Feature Detection with Automatic Scale Selection
    % IEEE Transactions Pattern Analysis Machine Intelligence 1998 30 
    % 77-116
    
    % 输入图像
    img = double(img(::1));
        
    % 设定检测到斑点的数量
    if nargin==1
        nb_blobs = 120;
    else
        nb_blobs = o_nb_blobs;
    end
    
    % 设定LoG参数
    sigma_begin = 2;
    sigma_end   = 15;
    sigma_step  = 1;
    sigma_array = sigma_begin:sigma_step:sigma_end;
    sigma_nb    = numel(sigma_array);
        
    % 变量
    img_height  = size(img1);
    img_width   = size(img2);
        
    % 计算尺度规范化高斯拉普拉斯算子
    snlo = zeros(img_heightimg_widthsigma_nb);
    for i=1:sigma_nb
        sigma       = sigma_array(i);

snlo(::i) = sigma*sigma*imfilter(imgfspecial(‘log‘ floor(6*sigma+1) sigma)‘replicate‘);

    end
        
    % 搜索局部极值
    snlo_dil             = imdilate(snloones(333));
    blob_candidate_index = find(snlo==snlo_dil);
    blob_candidate_value = snlo(blob_candidate_index);
    [tmpindex]          = sort(blob_candidate_value‘descend‘);
    
blob_index           = blob_candidate_index( index(1:min(nb_blobsnumel(index))) );

[ligcolsca]        = ind2sub([img_heightimg_widthsigma_nb]blob_index);

    points               = [ligcol3*reshape(sigma_array(sca)[size(lig1)1])];
    
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1636  2012-02-05 19:59  log_Blob.m

----------- ---------  ---------- -----  ----

                 1636                    1


评论

共有 条评论