如何在以下网站中显示过滤器的可视化方式:
http://www.robots.ox.ac.uk/~vgg/research/texclass/filters.html
例如,在图1中,最后四个方形子图像可视化四个不同的高斯滤波器。
答案 0 :(得分:3)
毕竟,它们只是图像,唯一的诀窍是使用正确的比例。幸运的是,这在MATLAB中非常简单。
因此,如果你的过滤器是G,那么你可以直观地看到它
imshow(G,[])
[]将为您设置正确的比例(min_value,max_value)。
例如,对于高斯西格玛30(这里可视化目的很高)这些行:
G1=fspecial('gauss',[round(6*sigma), round(6*sigma)], sigma);
imshow(G1,[]);
导致此图片:
您想要显示的具有不寻常范围的图像(即与[0 255]不同)的原理相同。
要一次显示多个图像,您必须使用subplot
答案 1 :(得分:0)
这只是一点点奖励,但由于滤波器是2D函数,我们也可以在Z
方向上映射函数的幅度。您基本上会采用imshow
中显示的强度,并将其映射到第三维。换句话说,复制@cifz所做的事情,我们也可以定义2D网格,然后使用mesh
或surf
以3D形式显示它。
因此:
sigma = 30;
G1=fspecial('gauss',[round(6*sigma), round(6*sigma)], sigma);
[X,Y] = meshgrid(1:size(G1,2), 1:size(G1,1));
mesh(X, Y, G1);
xlabel('X'); ylabel('Y'); zlabel('Amplitude');
title('3D visualization of the Gaussian filter');
colorbar;
你会得到:
这显然不是OP想要的,但我认为如果有人好奇,我会加上这个奖金。