我使用 OpenCV 计算了一系列图像的直方图,但在某些时候,即使图像具有不同的外观,它们的直方图也是相同的,因此熵和直方图的差异也是相同的。
在这里如何区分这些图像?
请帮忙!
我使用 OpenCV 计算了一系列图像的直方图,但在某些时候,即使图像具有不同的外观,它们的直方图也是相同的,因此熵和直方图的差异也是相同的。
在这里如何区分这些图像?
请帮忙!
如果输入图像是灰度的,那么只有 1 个通道,现在大多数图像都是彩色的。如果文件是灰度文件,则只有 1 个通道。
这里有一些很容易尝试的东西。对于灰度,您可以对每一行像素进行平均以获得单个灰度值,然后生成行平均值的直方图,同时对每列值进行平均并制作直方图。
过度简化结果。如果你有 3 个文件,
一种左半黑右半白的。
一种顶部为黑色,底部为白色的
一个有黑白方格的棋盘。
标准直方图将显示 50% 的黑色像素和 50% 的白色像素。
水平直方图将显示左/右和棋盘具有全部 50% 灰色,而顶部/bot 将具有 50% 黑色和 50% 白色
垂直直方图将显示顶部/bot 和棋盘具有全部 50% 灰色,而左/右将显示 50% 黑色和 50% 白色。
因此,虽然所有 3 个文件都具有相同的基本直方图,但它们在水平直方图上是唯一的。
水平直方图是低分辨率的,因为它们是平均值,所以您仍然需要完整的直方图进行主要识别。
当然,除了水平和垂直之外,您还可以得出其他平均值。