0

私は処理に取り組んでおり、2 つの異なる画像の 2 つのピクセルの色を比較したいと考えています。

位置10のピクセルを比較するとしましょう

color c1= image1.pixels[10]; color c2= image2.pixels[10];

if(c1==c2) { //何か }

最初は明るさで遊んでいました

if(明るさ(c1)==明るさ(c2))

一般的には機能していましたが、ピクセルが少し似ていましたが、まったく同じ色ではなかったため、希望どおりではありませんでした。

4

2 に答える 2

0

ペトロスの答えを拡張するには。通常、画像のピクセルを比較するときは正規化して、コードが標準範囲 0 ~ 255 にない画像でも機能するようにします。また、画像に対して多くの操作を行っている場合は、スケーリングのために現在作業している範囲を覚えておくとよいでしょう。

MAX_PIXEL=255 //maybe range is different for some reason
MIN_PIXEL=0

pixel_difference = 10
threshold = pixel_difference/(MAX_PIXEL-MIN_PIXEL)

if ( abs( (brightness(c1)-brightness(c2))/(MAX_PIXEL-MIN_PIXEL))< threshold ) {
  //then the pixels are similar.
}

場合によっては、異なる色空間に変換することで、より多くの根拠を得ることができます。

また、目の前のタスクに応じて、バックグラウンド モデルを構築して、時間の経過とともに適応したり、ヒストグラムなどの高レベルのグローバル フィーチャやスケール インバリアント フィーチャ トランスフォーム (SIFT) やコーナー、エッジなどのローカル フィーチャを比較したりできます。

于 2013-10-31T23:43:57.497 に答える