基于图像内容的图像检索技术——sift特征

   最近的主要研究方向是基于计算机视觉以及模式识别中的特征提取、匹配问题。进行了大量的文献阅读,越来越体会到学英语的重要性了,英文资料看起来逻辑清晰~(连国人写的英文文献比自己写的中文文献也要认真多了)。


计算机视觉中常用的局部特征sift特征具尺度不变性,在计算机视觉中被广泛应用。如果想更直观明了的理解sift特征中的提取匹配问题,可以通过opencv环境进行初步学习,opencv中有自带的接口函数进行测试。(opencvSift有大量相关的博客)。

现在主要说一下具体原理,以及对照提供的源代码进行分析,Lowe SIFT 原文:http://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf,

下载的源码是.c文件,我在vs2010中试了一下,

项目链接:http://download.csdn.net/detail/u013967613/9501082,

其中depfeat.c,match.c,siftfeat.c是测试代码,我对siftfeat进行了项目测试,其中的siftfeat.c为我的的测试源代码。

当然,大家也可以对match.c进行一个简单的测试。

项目中得到对应的sift特征点以及导出来的一副图片对应所用特征点的特征值。这是对一副车辆区域sift特征点的提取,玫红色的标记表征了sift特征的位置、尺度、方向信息。

基于图像内容的图像检索技术——sift特征_第1张图片

最后通过export_features()函数得到的特征信息,保存在feat.txt中,格式如下:

494 128
57.963380 47.046854 24.435966 -0.126717
 0 0 0 0 0 0 0 0 1 2 0 2 1 0 0 0 5 16 0 0
 0 0 0 0 0 6 3 5 3 0 0 0 0 0 0 4 1 0 0 0
 33 60 22 159 42 0 0 0 159 159 14 21 3 1 2 42 31 49 48 111
 76 11 5 22 0 0 0 1 0 0 0 0 128 36 18 110 3 0 0 3
 159 152 34 18 1 1 2 78 39 29 49 148 159 14 6 29 0 0 0 0
 0 0 0 0 27 12 3 2 0 0 0 0 72 62 13 1 0 0 0 0
 1 9 18 25 18 0 0 0
76.769124 124.215848 13.134222 -1.251161
 28 2 0 12 9 1 0 9 9 1 1 55 99 19 25 16 1 0 0 36
 33 91 114 15 0 0 0 6 7 104 94 0 25 9 7 78 19 0 0 7
 114 16 11 74 20 1 11 36 35 2 1 11 30 48 60 32 0 0 0 22
 102 110 24 0 13 19 64 108 23 0 0 2 114 114 19 26 8 0 0 5
 24 55 15 43 34 0 0 0 0 0 0 114 114 2 0 0 0 17 82 27
 4 34 1 0 7 114 72 3 0 4 0 0 0 114 95 43 21 0 0 0
 0 2 18 81 65 0 0 0

...


第一行的494表示这幅图共有494个特征点,128当然就是sift特征的维度啦~。接下来的四个浮点数分别表示特征点的x,y坐标,强度、方向。接下来的128个整数就是一个特征向量了。

这些特征信息用来做什么呢,当然是用来表征衣服图像咯。在进行特征匹配或者分类器测试是就会发现其用途了~。可以自己多试试几幅图像,测出其sift特征值。

你可能感兴趣的:(c++,c)