将2个直方图数据组合在OpenCV中的新数据中

时间:2014-04-24 07:54:55

标签: image matlab opencv image-processing probability

我想要比较2张图片,如果它们相似,那么我会保留2幅图像。我计算每个图像的HSV直方图,并比较直方图之间的距离。

现在,当获得第三张图像时,我必须将它与图像1和图像2(已经存储为一个相似的类型图像)进行比较。

如上所述的比较问题是图像的增加也增加了计算成本。

所以我想要做的就是如果2个图像相似而不是我希望将这些特征聚类为一个,那么将来类似图像的特征将与聚类特征进行比较。

选项1  如果我合并2直方图将是正确的?我不这么认为,但我不确定?

选项2 如何使用2图像特征分布,我从2直方图计算新的分布作为两个图像的组合分布。 ?这听起来不错吗?

1 个答案:

答案 0 :(得分:1)

让我一步一步地采取行动:

  

任务:比较2张图片。如果它们相似则保持两者,否则以某种方式合并。特征空间:HSV直方图。

     

选项1合并直方图是否正确?

是的,因为你使用直方图而不是签名,你可以只使用两个直方图的区间并除以2。

游览:如果你想合并其他图像,你必须跟踪已经合并的数量,所以你知道如何加权

Example: histogram with one bin, three pictures
with p1=2, p2=6, p3=10
merge p1,p2 to m_12: (2+6)/2 = 4
merge m_12 and p3: 
((weight * value m_12) + (weigth * value p3)) / 2
= ( (2/3 * 4) + (1/3 * 10) ) / 2
 = 6 [equal to (p1+p2+p3) / 3]

tl;是的,你可以合并它们

  

选项2如何使用2图像特征分布,我将2直方图中的新分布计算为两个图像的组合分布。 ?这听起来不错吗?

是的,虽然我不知道你想怎么做。

如果你想加快你的程序速度,你应该检查不同的距离测量(我只记得签名的SQFD和地球移动距离,不幸的是atm)。通常他们有一个快速但粗略的下限。这可用于获得距离的良好下限,因此您可以减少搜索空间。

  

图像的增加也会增加计算成本。

检查层次聚类以查找适合大量图像的数据结构。