【发布时间】:2016-05-09 17:57:21
【问题描述】:
我使用 MATLAB 的内置函数 fspecial 应用高斯拉普拉斯函数,然后使用 edge 函数应用高斯拉普拉斯函数。两者都没有给出完全相同的结果。这是我的代码:
clc
close all
clear all
%% LOG using fspecial
image = rgb2gray(imread('peppers.png'));
sigma=0.5;
window2 = fspecial('log', 2*ceil(3*sigma)+1, sigma);
window2 = window2/sum(abs(window2(:)));
log_im = abs(filter2(window2, image, 'same'));
%% LOG using edge
log_im_1 = edge(image,'log');
subplot(121);
imshow(log_im,[]);
title('Using Fspecial');
subplot(122);
imshow(log_im_1,[]);
title('Using Edge');
【问题讨论】:
-
首先,你为什么将你的过滤器除以它的条目的绝对总和?那么:Ed.ge 是一个 binary 图像,而 filter2 返回一个灰度图像,因此您可能需要对其进行阈值处理。