彩色图像之间的相似度测量(OpenCV)
我正在开发一个 CBIR(基于内容的图像检索)项目,该项目将绘制图像的 RGB 直方图,并计算其他图像与查询图像之间的距离。
我正在使用 VS 2008 - MFC 和 OpenCV 库。我想用来计算距离的方法是欧几里得距离(ED),但不知何故我没能解决。
我发现一个函数 - cvCalcEMD2() 可以帮助我计算两个直方图之间的距离。 要使用此功能,我需要为我的直方图创建签名。
这是创建签名的示例 我在 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函数的链接在我下面的评论中
I'm working with a CBIR (Content-based Image Retrieval) project which will draw RGB histogram of images and also calculate the distance between other images with query image.
I'm using VS 2008 - MFC and OpenCV Library. The method I wanted to use for calculating the distance is Euclidean Distance(ED), but somehow I failed to work it out.
I found a function - cvCalcEMD2() that can help me calculate the distance between two histogram.
To use this function, i need to create signature for my histogram.
Here is an example for creating signature that I found
in the For loop, there is a line where I need to pass in my histogram:
float bin_val = cvQueryHistValue_2D( hist1, h, s );
and in my function for histogram don't have something like the variable h_bins and s_bins
In my program, I calculate/draw my histogram into R, G and B.
means, each image I've 3 histogram.
eg: CvHistogram *hist_red, *hist_green, *hist_blue;
How do I use my histogram to create signature?
*the link to my drawHistogram function is on my comment below
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是我在项目中创建 RGB hist 签名的代码:
就我而言,我需要签名 tu 是浮点数组。
This is my code to create RGB hist signature in my project:
In my case I needed the signature tu be an array of floats.