【发布时间】:2014-03-24 11:23:09
【问题描述】:
我正在使用 compareHist() 函数来比较两个图像的直方图。
我的问题是:图像的大小对结果有相当大的影响吗?在比较之前我应该调整图像大小还是标准化直方图?我正在使用 CV_COMP_CORREL 方法。
【问题讨论】:
我正在使用 compareHist() 函数来比较两个图像的直方图。
我的问题是:图像的大小对结果有相当大的影响吗?在比较之前我应该调整图像大小还是标准化直方图?我正在使用 CV_COMP_CORREL 方法。
【问题讨论】:
您必须在比较之前对直方图进行归一化处理。
假设您有非标准化直方图,例如其中一个在区间 [0..1000] 中有一个 bin 值,另一个在 [0..1] 中。你怎么能比较他们?当然,像加法这样的数学运算都是没有意义的,因为这个加法的结果是什么?
那么实际上图像的大小并不重要。
实际上意味着如果你有一个图像 A 并且你将它缩放两次并且你有一个图像 B,那么如果你计算 hist(A) 和 hist(B),则对两者进行归一化,那么直方图将是几乎一样。这是因为如果您按因子 k 缩放图像,并且图像 A 中有颜色 c 的 n 个像素,那么在图像 B 中,颜色 c 大约有 k*k*n 个像素(取决于插值)。所以每个颜色量也成比例地“缩放”,所以如果你对 hist(A) 和 hist(B) 进行归一化,结果将大致相同(如果你的 bin 的大小大于 1,比如 16 等)
【讨论】: