2011-07-20 6 views
0

画像に変換するためにピクセル値(unsigned int)を処理することができません。 ピクセル値をイメージ形式に変換する構文が必要です。 cvset(すべての種類のコマンド)は機能しません。特定のカラーイメージだけが赤色または緑色などのように表示されます。イメージにピクセル値を再構成するための構文を助けてください。 イメージをピクセルに変換できますが、イメージを同じピクセル値から元に戻すことができません。opencvで画像を表示するためにピクセル値を変換する方法

+0

ニックネックではありませんが、画像はピクセルです。イメージ内の個々のピクセルを設定することについて話していますか? cvSetはすべてのピクセルを同じ値に設定します。そのため、その動作が表示されます。 –

答えて

2

作業中の画像にいくつのチャンネルがありますか?これは重要な情報です。グレイスケールの画像は通常1チャンネル、OpenCVによってロードされるカラー画像は通常3チャンネル(R、G、B)であることに注意してください。 Cで3チャンネルの画像で動作するように

は、あなたができる:シングルチャンネルの画像の場合

IplImage* pRGBImg = cvLoadImage("img.png", CV_LOAD_IMAGE_UNCHANGED); 
int width = pRGBImg->width; 
int height = pRGBImg->height; 
int bpp = pRGBImg->nChannels; 

for (int i=0; i < width*height*bpp; i+=bpp) 
{ 

    pRGBImg->imageData[i] = r; // RED pixel 
    pRGBImg->imageData[i+1] = g; // GREEN 
    pRGBImg->imageData[i+2] = b; // BLUE 
} 

をあなただけimg->imageData[i]上で動作する必要があるだろうとして、ループのコアは、はるかに簡単になります。

関連する問題