使用KMeans算法与BOF 算法实现图像检索,Matlab编码
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 82998 2008-12-31 09:44 harris 0.bmp
文件 82998 2011-01-10 16:00 harris 1.bmp
文件 82998 2011-01-10 16:00 harris 2.bmp
文件 82998 2008-12-31 10:22 harris 3.bmp
文件 82998 2008-12-31 09:48 harris11.bmp
文件 82998 2008-12-31 10:19 harris12.bmp
文件 82998 2010-12-27 16:10 harris21.bmp
文件 82998 2010-12-27 16:10 harris22.bmp
文件 740 2011-01-26 14:16 harrischeckargs.m
文件 548 2010-12-30 15:43 harrischeck_collineation.m
文件 2279 2011-08-21 22:55 harrisfunddist.m
文件 3399 2011-08-21 18:51 harrisfundmatrix.m
文件 655 2011-01-21 16:47 harrisget_consensus_set.m
文件 4016 2011-01-25 17:05 harrisharris.m
文件 2537 2011-01-19 21:41 harrisharris2.m
文件 50651 2002-02-04 16:03 harrisHigh2.jpg
文件 55455 2002-02-04 16:04 harrisHigh3.jpg
文件 343 2011-08-21 19:05 harrisisdegenerate.m
文件 2489 2011-09-14 21:34 harrisjiaodianjiance2.m
文件 2499 2011-02-22 14:21 harrismatch.m
文件 2780 2011-01-24 16:53 harrismatch_ransac.m
文件 2525 2011-08-21 18:44 harris
ormalise2dpts.m
文件 251 2011-01-24 17:04 harrisprojectivematrix.m
文件 9674 2011-08-21 22:52 harris
ansac.m
文件 3491 2011-08-21 18:46 harris
ansacfitfundmatrix.m
目录 0 2011-09-14 21:30 harris
----------- --------- ---------- ----- ----
808316 26
%待检索图片
testImg_file = ‘./testPictures‘;
testImg_name = ‘/motianlun3.jpg‘;
image = imread([testImg_file testImg_name]);
figure(1);
imshow(image);
%提取带检索图片SIFT特征
[~descr~~ ] = do_sift([testImg_file testImg_name] ‘Verbosity‘ 1 ‘NumOctaves‘ 4 ‘Threshold‘ 0.1/3/2 ) ;
%选择聚类个数
K=500;
% 提取图片库中所有图片的SIFT特征
[img_pathsFeats] = get_sifts(‘./img_paths.txt‘);
% 随机生成K个初始类心
initMeans = Feats(randi(size(Feats1)1K):);
% 根据生成的初始类心对所有SIFT特征进行聚类
[KMeans] = K_Means(FeatsKinitMeans);
% 统计图片库每张图片每个聚类中特征点个数,每张图片对应一个K维向量
[countVectors] = get_countVectors(KMeansK,size(img_paths1));
% 统计带检索图片每个聚类中特征点个数,得到一个K维向量
[cosVector] = get_singleVector(KMeansKdescr‘);
% 根据余弦相似定理,求带检索图片与图片库中所有图片的余弦夹角
cosValues = zeros(1size(img_paths1));
for N =1:size(img_paths1);
dotprod = sum(cosVector .* countVectors(N:));
dis = sqrt(sum(cosVector.^2))*sqrt(sum(countVectors(N:).^2));
cosin = dotprod/dis;
cosValues(N) = cosin;
end;
% 对结果排序
[valsindex] = sort(acos(cosValues));
% 输出匹配度最高的36张图片
figure(2);
c=0;
% show picture at host
for id = 1:36
path = img_paths{index(id)};
image = imread(path);
if (mod(id-112) == 0&&id~=1)
c=c+1;
figure(c+2);
end
subplot(43id-12*c);
imshow(image);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 82998 2008-12-31 09:44 harris 0.bmp
文件 82998 2011-01-10 16:00 harris 1.bmp
文件 82998 2011-01-10 16:00 harris 2.bmp
文件 82998 2008-12-31 10:22 harris 3.bmp
文件 82998 2008-12-31 09:48 harris11.bmp
文件 82998 2008-12-31 10:19 harris12.bmp
文件 82998 2010-12-27 16:10 harris21.bmp
文件 82998 2010-12-27 16:10 harris22.bmp
文件 740 2011-01-26 14:16 harrischeckargs.m
文件 548 2010-12-30 15:43 harrischeck_collineation.m
文件 2279 2011-08-21 22:55 harrisfunddist.m
文件 3399 2011-08-21 18:51 harrisfundmatrix.m
文件 655 2011-01-21 16:47 harrisget_consensus_set.m
文件 4016 2011-01-25 17:05 harrisharris.m
文件 2537 2011-01-19 21:41 harrisharris2.m
文件 50651 2002-02-04 16:03 harrisHigh2.jpg
文件 55455 2002-02-04 16:04 harrisHigh3.jpg
文件 343 2011-08-21 19:05 harrisisdegenerate.m
文件 2489 2011-09-14 21:34 harrisjiaodianjiance2.m
文件 2499 2011-02-22 14:21 harrismatch.m
文件 2780 2011-01-24 16:53 harrismatch_ransac.m
文件 2525 2011-08-21 18:44 harris
ormalise2dpts.m
文件 251 2011-01-24 17:04 harrisprojectivematrix.m
文件 9674 2011-08-21 22:52 harris
ansac.m
文件 3491 2011-08-21 18:46 harris
ansacfitfundmatrix.m
目录 0 2011-09-14 21:30 harris
----------- --------- ---------- ----- ----
808316 26
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)