【发布时间】:2011-05-09 06:35:16
【问题描述】:
我正在处理一个 CBIR(基于内容的图像检索)项目,该项目将绘制图像的 RGB 直方图,并计算其他图像与查询图像之间的距离。
我正在使用 VS 2008 - MFC 和 OpenCV 库。我想用来计算距离的方法是欧几里得距离(ED),但不知怎的我没能算出来。
我找到了一个函数——cvCalcEMD2(),它可以帮助我计算两个直方图之间的距离。 要使用此功能,我需要为我的直方图创建签名。
这是我找到的example for creating signature
在 For 循环中,有一行我需要在我的直方图中传递:
float bin_val = cvQueryHistValue_2D(hist1, h, s);
在我的直方图函数中没有变量 h_bins 和 s_bins 之类的东西
在我的程序中,我将直方图计算/绘制成 R、G 和 B。 意味着,每张图像我都有 3 个直方图。 例如:CvHistogram *hist_red, *hist_green, *hist_blue;
如何使用直方图创建签名?
*我的 drawHistogram 函数的链接在我下面的评论中
【问题讨论】:
-
链接到我的计算/绘制RGB直方图的代码:slideshare.net/irylee/histogram-5758527
标签: c++ image-processing opencv histogram euclidean-distance