2013-02-13 58 views
0

我使用OpenCV計算了一系列圖像的直方圖,但是即使圖像具有不同的外觀,它們的直方圖也相同,其結果是熵和直方圖差異也相同。我們如何區分具有相同直方圖的圖像?

這裏如何區分這些圖像?

請幫忙!

+1

顯而易見的答案是,你不應該通過直方圖比較圖像。單純依靠直方圖時,這是一個已知問題。還有很多其他方法可以比較圖像,如果您包含一些您正在嘗試比較的示例圖像,則可能會出現更多相關的建議/答案。 – mmgp 2013-02-13 15:11:07

+0

如何比較圖像? – thang 2013-02-13 15:28:21

+1

直方圖通常會查看圖像,因爲它是黑色和白色。您可以嘗試各個通道的直方圖,以便獲得紅色直方圖,綠色直方圖和藍色直方圖並進行比較。 另一種技術是從另一個圖像中減去一個圖像,然後對結果圖像進行直方圖分析。該直方圖將測量圖像的差異。 – 2013-02-13 17:31:40

回答

0

如果輸入圖像是灰度,那麼只有1個通道,現在大多數圖像都是彩色的。如果文件是灰度,那麼只有1個通道。

這裏有一些簡單的嘗試。對於灰度級,您可以對每行像素進行平均以獲得單個灰度值,然後生成行平均值的直方圖,同時對每個列值進行平均並生成該直方圖。

通過簡單的結果。如果你有3個文件,

其中一個左半邊黑色和右半邊白色。

一個具有頂部黑色和底部白色

一個具有黑色和白色正方形的棋盤。

標準直方圖將顯示50%的黑色像素和50%的白色。

水平直方圖會顯示左/右和棋盤稱爲具有全部50%灰色,而頂部/機器人將具有50%的黑色& 50%白色

甲垂直直方圖將顯示前/ BOT和棋盤全部爲50%灰色,而左/右則顯示50%黑色和50%白色。

所以,雖然所有3個文件將具有相同的基本直方圖,它們將由水平直方圖唯一。

水平直方圖是低分辨率,因爲它們是平均值,所以您仍然需要完整的歷史曲線來進行主要識別。

當然你也可以想出除水平和垂直以外的其他平均值。

+0

對行進行平均只會導致更多的「直方圖衝突」,即具有相同直方圖的不同圖像。 – mmgp 2013-02-13 20:51:47

+0

3個直方圖一起使用時不適用。標準直方圖仍然是唯一性的主要來源。只有當多幅圖像的第一級直方圖相似時,第二級圖像才能用於區分。這將像第一個直方圖是一個名稱,如「約翰史密斯」和次要直方圖是身高和體重。因此,與多個約翰史密斯約翰史密斯之一是5'10「和180磅,而第二個約翰史密斯是6'1」和380磅。 – 2013-02-13 21:29:44

+0

計算機視覺中的一個標準程序是使用直方圖金字塔來保留一些否則會丟失的空間信息。 [Here](http://www.robots.ox.ac.uk/~vgg/research/caltech/phog.html)是一個使用漸變而不是灰度值的例子。但他的想法仍然適用。 – sietschie 2013-02-14 08:55:26

相關問題