5

ヒストグラム比較の限界がわからないので、素晴らしいコミュニティに聞くことにしました。
私はいくつかの画像を持っており、その類似性に従ってそれらをグループ化したい.すべての画像には、画像の上から下に向かって独特の色付きの線があるので、私がしたことは、それらの色付きの線を通して垂直投影を行い、すべての画像のこの射影のヒストグラム。人間として、2つの類似した画像が2つの類似したヒストグラムを持つ必要があるため(つまり、両方がほぼ同じラウンドで上下する)、うまく機能します。 1 つのヒストグラムのピーク値が高くない場合 (つまり、かすかな画像のヒストグラム)

対応するヒストグラムを含む画像:
................... 1st http://imageshack.us/a/img571/948/onelg.jpg ..... ................................................... 2 番目の http:// imageshack.us/a/img255/642/twor.jpg .................................. ... 3回目 http://imageshack.us/a/img577/3931/threeaw.jpg . 1回目http://imageshack.us/a/img823/ 4343/onehq.png 2 番目 http://imageshack.us/a/img687/3738/twoht.png 3 番目 http://imageshack.us/a/img43/9996/threeh.png
......... ................................................................... .......... 2nddarker http://imageshack.us/a/img690/7817/twodark.jpg
................... ................................................2nddarkhist http://img20.imageshack.us/img20/6070/darkerh.png

2 つの画像をグレースケールに変換し、それをヒストグラムに変換して画像の垂直投影を行いました。


:-(1)最初の2つのヒストグラムを考慮してください。最高のくちばしはほぼ12ですが、一部の画像がより暗いまたはより暗い場合は必ずしもそうではありませんが、最終的には、できればヒストグラムと同じ形態になりますお気づきのように、最後のヒストグラムは 2 番目のヒストグラムよりも暗い画像です。

私の質問は次のとおりです:どんな種類のヒストグラム比較を行っても安全ですか??ヒストグラム比較とは、たとえば2つのヒストグラムに同じピークがあるかどうかを判断できることを意味しますか? または、言い換えれば、2 つのヒストグラムが同じ形態を持っているかどうかをヒストグラム比較で教えてくれますか??この種の比較を行うための最良のライブラリまたは方法は何pythonですか??

更新:-
(1) @PepperoniPizza と @FedericoCristina への返信として、私の場合、まったく異なる画像は確かに異なるヒストグラムを持ちます (それを信頼することができます)。画像ごとに異なりますが、2 つの類似した画像は同じ数のピークを持つ必要があります (つまり、ヒストグラムを見ると、同じように見えることがわかります (1 番目、2 番目、最後のヒストグラムを見てください)。
(2)これについて明確にするために、画像をグループ化する方法の解決策は本当に望んでいませんが、2つのヒストグラムが同様の形状または形態を持っていることをどのように決定できるかについて多くの意図を払っています一般的なケース!!!!
(3)私は知っていますcv2.CompareHist()しかし、ヒストグラムを比較するのが適切な方法であるかどうかはわかりcv2.CompareHist()ません。なぜなら、どのように機能するのかわからないため(つまり、比較を行う基準がわかりません)、実際にcv2.CompareHist()は4種類のヒストグラム比較がありますが、それらはありません'そのような比較を行うための最良の方法や、代替方法が何であるかさえわかりません。
(4)返信@remiとして、ここにポイントがあります:-私はすでに3つのライブラリでヒストグラム比較をサポートしています.h1-h2そしてcalcuate(MSE)、ヒストグラムでこれらの値が形成する形状ではなく、値を比較するだけです。したがって、私はヒストグラムとその数学作業が得意ではないので、ヒストグラムをそのような方法で本当に比較できるかどうか疑問に思っています。

ありがとう

4

3 に答える 3

3

あらゆる種類のヒストグラム比較を行っても安全ですか?

いいえ、それでは十分ではありません。あまり似ていないものを破棄するためにヒストグラム比較を使用できますが、@PepperoniPizza が言ったように、2 つのまったく異なる画像がまったく同じヒストグラムを持つ可能性があります。

類似性に基づいて画像をグループ化する必要がある場合は、2D平均二乗誤差(MSE) (または平均絶対誤差(MAE)) アルゴリズムを実装する必要があります。これは、単に 2 つの画像の差を測定するもので、0 はそれらが同等。

Pythonでこの種の比較を行うための最良のライブラリまたは方法は何ですか?

これらの関数の実装は非常に簡単です (画像 A と画像 B の 2 つのピクセル間の誤差または差を計算する FOR ステートメントがいくつか必要です)。Python OpenCVまたはPyhon Imaging Libraryを使用できます。

于 2012-11-06T00:39:19.250 に答える
1

私が理解している限り、投影を行うため、実際には画像のヒストグラムを計算していません。画像内の色の頻度だけでなく、その構造も考慮した記述子が必要です。MPEG7 ColorStructureまたはColorLayout記述子を見ることができます。MPEG7 記述子の C++ での参照実装がありますが、これを機能させるのは非常に苦労したことを覚えています。ColorStructure は実装が最も簡単で、ユークリッド距離に基づいて色構造ヒストグラムを比較できます。記述子間の距離が最も短く、画像が最も似ている (と思われる)。

于 2012-11-06T10:42:07.783 に答える
0

ヒストグラムは、同じ色 (この場合はグレースケール) に対応するピクセルの数です。ヒストグラムが 2 つの画像を比較するのに十分であるとまだ考えている場合、2 つのまったく異なる画像が同じヒストグラムを持つ可能性があるため、最初に正規化プロセスを実行します。

于 2012-11-06T00:22:15.860 に答える