计算机视觉---2.3---尺度空间算法
尺度空间算法是计算机视觉的重要思想,无论是二维计算机视觉还是三维计算机视觉,尺度空间算法在图像配准,特征提取,运动估计方面都有很好的应用,这归功于算法的鲁棒性和对不同尺度图像的都具有很好的响应。
尺度空间的思想
尺度空间对图像的描述模拟了人眼由远及近的一个过程。
对于远处的图像,能够提取的特征是轮廓,形状,整体。
对于近处的图像,能够提取的特征是细节,小对比。
举个例子,从远处看,松树和枫树是不一样的。在近处“世界上没有两片相同的叶子(同一棵树上)”。
尺度空间金字塔
尺度空间的思想是把一副图像变成一个图像族。由一副图像派生出多幅图像,通过对这个图像族的操作获取“广义的图像”所表达的含义。“广义的图像”指的是这幅图像所描述的场景,而不纠结于一个个像素。
尺度空间生成算法
Created with Raphaël 2.1.2一幅图片高斯平滑重采样(如2像素抽1)是否达到要求的最小尺度获得尺度空间Endyesno
尺度空间生成算法有两个重要的步骤
- 高斯平滑
高斯平滑的意义在于去除图像中的高频成分,由于高频成分会导致重采样时获得高频噪声,导致采样出错。 - 重采样
重采样的意义是获取“粗”的图像。从而获取广义图像所表达的“大”内容。
PGaussian(I)(n+1)=S↓(Gσ∗∗PGaussian(I)(n))
其中
- PGaussian(I)(n+1)表示尺度空间生成的下一层图像
- PGaussian(I)(n)表示尺度空间的母图像。
- S↓表示重采样(downsample)。
- Gσ 表示一个高斯核
- ∗∗表示二维卷积
实现尺度空间的代码
talk is cheap, show you the code
clear all
close all
clc
///////清空////////
[a,b]=uigetfile('*');
pic=imread(a);
g_pic=rgb2gray(pic);
imshow(g_pic)
///////从文件夹选取一张图片转灰度后显示///////
f = fspecial('gaussian',[11 11],10);
//////生成高斯模板////////////////////
down_img = g_pic;
while 1>0
imfilter(down_img,f);
down_ = downsample(down_img',2);
down_img = downsample(down_',2);
SIZE = size(down_img);
if(SIZE(:,1))<10
break
end
figure
imshow(down_img)
end
这里利用的是matlab自带的重采样功能,因为只能对列重采样,所以先转置一次采样后再转置一次,matlab is so sweet。
结果如下:
版权声明:本文为博主原创文章,未经博主允许不得转载。