用matlab进行图像排序

时间:2014-07-09 18:49:23

标签: image matlab sorting matlab-cvst

我正在尝试进行某种图像排序。

我有5张图片,第一张是我的主要图片。我试图根据它们的相似性对图像进行排序。(最相似的图像到不太相似的图像)。

Matlab有matchfeature方法,但我不认为我正确使用它,因为我的结果是错误的。我尝试使用:

[indexPairs,matchmetric] = matchFeatures(features1,features2,"MatchThreshold,10")

然后我尝试对matchmetric数组进行排序。但它没有工作

有谁可以告诉我一些算法或任何提示?谢谢..

3 个答案:

答案 0 :(得分:1)

您可以计算每个图像与主图像之间的相关系数,然后根据系数对它们进行排序。

doc corr2

例如,假设您将所有图像存储在一个单元格阵列(称为ImageCellArray)中,其中第一张图像是您的主图像":

for i = 2:size(ImageCellArray,2) % size(ImageCellArray,2) is the total # of images, i.e. the size of the cell array containing them.

CorrCoeff(i) = corr2(rgb2gray(ImageCellArray{1}),rgb2gray(ImageCellArray{i}));

end

[values indices] = sort(CorrCoeff); % sort the coefficients and get the number of the corresponging image.

然后我猜你好了。

答案 1 :(得分:1)

您可以计算每个图像与主图像相比的PSNR(峰值信噪比)。 PSNR是通常用于测量针对原始图像的重建压缩的质量的度量。

计算机视觉系统工具箱中的implemented in Matlab作为功能块,图像处理工具箱中还有psnr function。结果将是您可以用来对图像进行排名的分贝数。较高的PSNR值表示更大的相似性。

答案 2 :(得分:0)

看一下image retrieval的这个例子。它不是匹配图像对之间的特征,而是使用统计工具箱中的KDTreeSearcher来查找整个数据库图像集中查询图像中每个特征的最近邻居。

相关问题