0

私は画像と関数を持っています

int getRegion(int x,int y)

これにより、ピクセルが属するコンポーネントの一意の識別子が得られます。

class Component
{
    int Identifier;
    CvHistogram* hist;
}

画像全体をループし、getRegion() 関数を使用して、各ピクセルの値をそれに対応するヒストグラムに追加します。誰かがこれをしましたか?そのように cvCalcHist() メソッドをオーバーロードすることは可能ですか? OpenCV のソース コードを調べて、条件を追加してそのメソッドをコピーする以外に、どこから始めればよいかわかりません。

4

1 に答える 1

0

おそらく、これを自分で実装する方が簡単でしょうか?ヒストグラムをビン化する方法によっては、非常に簡単になる場合があります。たとえば、推測して、getRegion関数が 1 バイトの整数 (つまり 0 から 255 の間) を返すと仮定すると、ヒストグラムを生成するのはかなり簡単です。

int histArray[256] = { 0 };

for (x = 0; x < imageWidth; x++)
  for (y = 0; y < imageHeight; y++)
    histArray[getRegion(x,y)]++;

histArray次に、各値のカウントが含まれます。これよりも複雑なものが必要な場合は、おそらく質問に詳細を記載する必要があります。

于 2013-03-14T13:32:36.187 に答える