主要内容

IndexImages.

创建图像搜索索引

描述

例子

imageIndex.= IndexImages(IMDS.创造一个invertedimageIndex.目的,imageIndex.,包含搜索索引IMDS.。采用imageIndex.与之redrieximages.用于搜索图像的功能。

例子

imageIndex.= IndexImages(IMDS.返回使用自定义的搜索索引Bagoffeature目的,。使用此语法当您想要修改用于创建图像搜索索引的可视字数或要素类型时,您会创建IMDS.

imageIndex.= IndexImages(___名称,价值使用一个或多个指定的其他选项名称,价值配对参数,使用前面的任何语法。

此对象支持使用多个MAT金宝appLAB的并行计算®工人。启用并行计算计算机视觉工具箱首选项对话框。打开计算机Vision Toolbox™首选项标签,在环境部分,点击喜好。然后选择电脑视觉工具箱

例子

全部收缩

创建图像集。

setdir = fullfile(toolboxdir('想象'),'VisionData''镜片''杯');IMDS = IMAGEDATASTORE(SETDIR);

索引图像集。

imageIndex = IndexImages(IMDS)
使用袋 - 功能创建反转图像索引。---------------------------------------------------------------------创建功能袋。--------------------- *使用探测器方法选择要点位置。*从所选功能点位置提取冲浪功能。**检测拍摄用于检测特征提取的关键点。*从6张图像中提取功能...完成。提取了1708个特征。*保留每个类别的最强功能的80%。*平衡所有图像类别的功能数量以提高聚类。**图像类别1具有最低的最低功能:1366. **使用来自每个其他图像类别的最强的1366个功能。 * Using K-Means clustering to create a 20000 word visual vocabulary. * Number of features : 1366 * Number of clusters (K) : 1366 * Initializing cluster centers...100.00%. * Clustering...completed 1/100 iterations (~0.03 seconds/iteration)...converged in 1 iterations. * Finished creating Bag-Of-Features Encoding images using Bag-Of-Features. -------------------------------------- * Encoding 6 images...done. Finished creating the image index.
imageIndex = ImageDimageIndex具有属性:ImageLocation:{6x1 Cell} ImageWords:[6x1 Vision.Internal.Visualwords] WordFrequency:[1x1366 Double] Bagoffecate:[1x1 Bagoffeature] Matchthreshold:0.0100 WordFrequencyRange:[0.0100 0.9000]

显示使用的图像设置剪辑功能。

thumbnailgallery = [];为了i = 1:长度(IMDS.FILES)i = REPITIMAGE(IMDS,i);缩略图= imresize(i,[300 300]);Thumbnailgallery =猫(4,Thumbnailgallery,Thumbnail);结尾图蒙太奇(Thumbnailgallery);

图包含轴。轴包含类型图像的对象。

选择查询映像。

QueryImage = ReadImage(IMDS,2);图imshow(queryimage)

图包含轴。轴包含类型图像的对象。

搜索使用查询图像设置类似图像的图像。最好的结果是首先。

indices =检索agages(queryimage,imageindex)
索引=5×12 1 5 4 3
bestmatchidx = indices(1);

显示图像集的最佳匹配。

bestmatch = imageindex.imageLocation {bestmatchidx}
bestmatch ='/ mathworks/devel/bat/bdoc21a/build/matlab/toolbox/vision/visiondata/imageSet/cups/bluecup.jpg'
图imshow(bestmatch)

图包含轴。轴包含类型图像的对象。

创建图像集。

setdir = fullfile(toolboxdir('想象'),'VisionData''镜片''杯');imgsets = imageset(setdir,'递归');

显示图像集。

thumbnailgallery = [];为了i = 1:imgsets.count i =读取(imgsets,i);缩略图= imresize(i,[300 300]);Thumbnailgallery =猫(4,Thumbnailgallery,Thumbnail);结尾图蒙太奇(Thumbnailgallery);

图包含轴。轴包含类型图像的对象。

使用自定义功能提取器列车一袋功能。

Extractor = @ExampleBagoffeaturesextractor;bag = bagoffeature(imgsets,'comotomxtractor',提取器);
创建袋子功能。-------------------------- *图像类别1:杯子*使用自定义特征提取功能提取功能:examplebagoffeaturesextractor。*从图像设置1中的6个图像中提取特征..​​.完成。提取了115200个功能。*保留每个类别的最强功能的80%。*使用K-means群集创建500字视觉词汇表。*特点数量:92160 *群集数量(k):500 *初始化群集中心... 100.00%。*聚类...完成22/100迭代(〜1.07秒/迭代)......融合在22次迭代中。*完成创建功能袋

使用培训的袋子特征来索引图像集。

imageIndex = IndexImages(IMGSets,Bag,'verbose',错误的)
imageIndex =与属性的InvertedImageIndex:ImageLocation:{6x1 Cell} ImageWords:[6x1 Vision.Internal.visualwords] WordFrequency:[1x500 Double] Bagoffecate:[1x1 Bagoffecate] Matchthreshold:0.0100 WordFrequencyRange:[0.0100 0.9000]
QueryImage =读取(IMGSets,4);图imshow(queryimage)

图包含轴。轴包含类型图像的对象。

使用查询图像搜索图像索引中的图像。

indices = RetrieveImages(QueryImage,imageIndex);bestmatch = imageindex.imageLocation {idse(1)};图imshow(bestmatch)

图包含轴。轴包含类型图像的对象。

输入参数

全部收缩

图像,指定为一个imageageAtastore.目的。该对象存储图像集合。

袋视觉单词,指定为aBagoffeature目的。

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'verbose'真的设置'verbose'财产真的

保存要点,指定为逗号分隔的配对组成Savefeaturelocations'和一个逻辑标量。设置到真的,图像要素位置已保存在imageIndex.输出对象。使用位置数据来验证空间或几何图像搜索结果。如果您不需要要素位置,请将此属性设置为false以减少内存消耗。

显示进度信息,指定为由“逗号分隔的配对”组成verb'和一个逻辑标量。

输出参数

全部收缩

图像搜索索引,返回为invertedimageIndex.目的。

算法

imageIndex.使用具有激进鲁棒功能(SURD)检测器和提取器的功能框架框架,以学习20,000个视觉单词的词汇。然后使用视觉单词创建索引,将视觉单词映射到图像中IMDS.。您可以使用索引来搜索图像内的图像IMDS.类似于给定的查询图像。

在R2015A介绍