Image 图像大小对比较直方图OpenCV的影响

Image 图像大小对比较直方图OpenCV的影响,image,opencv,histogram,Image,Opencv,Histogram,我使用compareHist()函数来比较两幅图像的直方图 我的问题是:图像的大小对结果有很大的影响吗?在比较之前,我应该调整图像的大小还是规范化直方图?我使用的是CV_COMP_CORREL方法。在比较之前,您必须对直方图进行标准化。 假设您有非去甲化直方图,例如,其中一个有区间[0..1000]中的bins值,另一个在[0..1]中。你如何比较它们?当然,像加法这样的数学运算毫无意义,因为加法的结果是什么 那么实际上,图像的大小并不重要。 实际上,这意味着如果你有一个图像A,你将其缩放两次,

我使用compareHist()函数来比较两幅图像的直方图


我的问题是:图像的大小对结果有很大的影响吗?在比较之前,我应该调整图像的大小还是规范化直方图?我使用的是CV_COMP_CORREL方法。

在比较之前,您必须对直方图进行标准化。

假设您有非去甲化直方图,例如,其中一个有区间[0..1000]中的bins值,另一个在[0..1]中。你如何比较它们?当然,像加法这样的数学运算毫无意义,因为加法的结果是什么

那么实际上,图像的大小并不重要。


实际上,这意味着如果你有一个图像A,你将其缩放两次,得到一个图像B,然后如果你计算hist(A)和hist(B),将两者归一化,那么直方图实际上是相同的。这是因为,如果按系数k缩放图像,并且图像A中的颜色c有n个像素,那么图像B中的颜色c大约有k*k*n个像素(取决于插值)。因此,每个颜色量也会按比例“缩放”,因此,如果对hist(A)和hist(B)进行归一化,结果将大致相同(如果您的箱子大小大于1,如16等)。

在比较之前,您必须对直方图进行归一化。

假设您有非去甲化直方图,例如,其中一个有区间[0..1000]中的bins值,另一个在[0..1]中。你如何比较它们?当然,像加法这样的数学运算毫无意义,因为加法的结果是什么

那么实际上,图像的大小并不重要。


实际上,这意味着如果你有一个图像A,你将其缩放两次,得到一个图像B,然后如果你计算hist(A)和hist(B),将两者归一化,那么直方图实际上是相同的。这是因为,如果按系数k缩放图像,并且图像A中的颜色c有n个像素,那么图像B中的颜色c大约有k*k*n个像素(取决于插值)。因此,每个颜色量也会按比例“缩放”,因此,如果您规范化hist(A)和hist(B),结果将大致相同(如果您的箱子大小大于1,如16等)

并且在实现中必须这样做?我在两种情况下都得到了相同的结果,或者compareHist函数会自动正常化。我不这么认为。你的意思是你首先比较了没有标准化的直方图,然后比较了标准化的直方图,得到了相同的结果?是的。我不知道为什么。也许这是我正在测试的具体案例。是的,我想是的。一般规则是在比较之前对直方图进行归一化。这就像一条规则:“在某些情况下,这是不必要的,但你不想浪费时间去思考它是否必要”。在实施过程中,这是强制性的吗?我在两种情况下都得到了相同的结果,或者compareHist函数会自动正常化。我不这么认为。你的意思是你首先比较了没有标准化的直方图,然后比较了标准化的直方图,得到了相同的结果?是的。我不知道为什么。也许这是我正在测试的具体案例。是的,我想是的。一般规则是在比较之前对直方图进行归一化。这就像一条规则:“在某些情况下,这是不必要的,但你不想浪费时间去思考它是否必要。”。