DoG算子---matlab程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mr_muli/article/details/82353531
  • DoG算子—matlab程序
clc;close all;clear;

img = double(imread('images/0.jpg'))/255;
gray=rgb2gray(img);

sigma1=0.1;
sigma2=0.8;
window=7;
% fspecial函数用于建立预定义的滤波算子,其语法格式为:
% h = fspecial(type,parameters,sigma)
%   其中type指定算子的类型,para指定相应的参数;
%   type= 'gaussian',为高斯低通滤波器,参数有两个,n表示模版尺寸,默认值为[3,3],sigma表示滤波器的标准差,单位为像素,默认值为 0.5
%   G=fspecial('gaussian',5)----参数为5,表示产生 5*5 的gaussian矩阵,如果没有,默认为 3*3 的矩阵。
H1=fspecial('gaussian', window, sigma1);
H2=fspecial('gaussian', window, sigma2);

% 作高斯差分
DiffGauss=H1-H2;
% g = imfilter(f, w, filtering_mode, boundary_options, size_options)
%   f为输入图像,w为滤波掩模,g为滤波后图像
%   filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。
%     ‘corr’ 通过使用相关来完成,该值为默认。
%     ‘conv’ 通过使用卷积来完成
%   boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定。
%     ‘replicate’ 图像大小通过复制外边界的值来扩展
%     ‘symmetric’ 图像大小通过镜像反射其边界来扩展
out=imfilter(gray,DiffGauss,'replicate');   %对任意类型数组或多维图像进行滤波

% I = mat2gray(A, [amin amax])
% 将图像矩阵A中介于amin和amax的数据归一化处理, 其余小于amin的元素都变为0, 大于amax的元素都变为1。

% I = mat2gray(A)
% 将图像矩阵A归一化为图像矩阵I, 归一化后矩阵中每个元素的值都在0到1范围内(包括0和1)。其中0表示黑色,1表示白色。
out=mat2gray(out);

figure;imshow(out);

猜你喜欢

转载自blog.csdn.net/mr_muli/article/details/82353531
Dog