- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:グレースケール時の画素値の順番について)
グレースケール画像のピクセル値の順番について
このQ&Aのポイント
- VC++でOpenCVを使ってグレースケール画像のピクセル値を取得する方法について教えてください。
- グレースケール画像のピクセル値は1チャンネルで格納されており、ポインタを1つずらすことで次のピクセルにアクセスできます。
- 取り出した値が負の値である場合は間違っている可能性があります。適切な方法でピクセル値を取得してください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
CV_LOAD_IMAGE_GRAYSCALEで読みこんだのなら、1 チャンネルのデータになっているはずです。 http://opencv.jp/opencv-2svn/c/basic_structures.html#iplimage 念のため、 p->nChannels の値を確認してください。1になっているはずです。 > 今のところポインタを1つずらしたところを隣のピクセルという風に処理をしているんですが、 > 取り出した値を見ても負の値が出てきているので、たぶん間違いなのでしょう。 IplImage.imageData は char *型(つまり、符号付きchar型)なので、 128~255は -128~-1になります。 unsigned char dc = p->imageData[ y * p->widthStep + x] ; int dsi = 0xff & (p->imageData[ y * p->widthStep + x] ) ; など、符号無し型やより大きい型の下位ビットにするようにする必要があります。
その他の回答 (2)
- ohtawa
- ベストアンサー率23% (9/38)
回答No.2
どこまでご存知なのかわからないので回答しにくいです リファレンスやサンプルコードが豊富にある http://opencv.jp/sample/basic_structures.html#access_pixels はご存知でしょうか グレースケールの場合 R=G=B ということはご存知ですよね
- SAYKA
- ベストアンサー率34% (944/2776)
回答No.1
その画像、白黒なんだけど 値としてはRGBってオチは 無いよね?