计算机视觉---2.3---尺度空间算法

尺度空间算法是计算机视觉的重要思想,无论是二维计算机视觉还是三维计算机视觉,尺度空间算法在图像配准,特征提取,运动估计方面都有很好的应用,这归功于算法的鲁棒性和对不同尺度图像的都具有很好的响应。

尺度空间的思想

尺度空间对图像的描述模拟了人眼由远及近的一个过程。
对于远处的图像,能够提取的特征是轮廓,形状,整体。
对于近处的图像,能够提取的特征是细节,小对比。
举个例子,从远处看,松树和枫树是不一样的。在近处“世界上没有两片相同的叶子(同一棵树上)”。

尺度空间金字塔

尺度空间的思想是把一副图像变成一个图像族。由一副图像派生出多幅图像,通过对这个图像族的操作获取“广义的图像”所表达的含义。“广义的图像”指的是这幅图像所描述的场景,而不纠结于一个个像素。

尺度空间生成算法

Created with Raphaël 2.1.2一幅图片高斯平滑重采样(如2像素抽1)是否达到要求的最小尺度获得尺度空间Endyesno

尺度空间生成算法有两个重要的步骤

  1. 高斯平滑
    高斯平滑的意义在于去除图像中的高频成分,由于高频成分会导致重采样时获得高频噪声,导致采样出错。
  2. 重采样
    重采样的意义是获取“粗”的图像。从而获取广义图像所表达的“大”内容。
PGaussian(I)(n+1)=S(GσPGaussian(I)(n))

其中

  1. PGaussian(I)(n+1)表示尺度空间生成的下一层图像
  2. PGaussian(I)(n)表示尺度空间的母图像。
  3. S表示重采样(downsample)。
  4. Gσ 表示一个高斯核
  5. 表示二维卷积

实现尺度空间的代码

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。

结果如下:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

posted @ 2015-05-25 10:54  IronStark  阅读(1001)  评论(0编辑  收藏  举报