• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OpenCV2-画素を配列に格納したい)

OpenCV2-画素を配列に格納したい

このQ&Aのポイント
  • OpenCV2を使用して画像から画素情報を2次元配列に格納する方法を教えてください。
  • OpenCV2.3をインストールしたパソコンで、画像の画素情報を2次元配列に格納する方法を教えてください。
  • OpenCV2を使って画像の画素情報を2次元配列に格納する方法を詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

imgの中身は?チャンネル数と色等構成は? pixel[x][y] の型は? IPLImageの特定の座標の値を得る方法はわかりますが、 それがなんの値なのか、それをRGB/輝度にするにはどうするか、それをpixel[x][y]に入れるには、というのは上記情報が無ければ具体策はわかりません。 方法1) CvScalar px ; px = cvGet2D(img, Y, X) ; で pxに各チャンネルの値が入る。 px.val[0] 最初のチャンネル px.val[1] 次のチャンネル ...で値を参照する。 例) imgが BGRだったら、 px.val[0]が青、px.val[1]が緑、px.val[2]が赤 処理は少し遅いがプログラムは簡単 方法2) *( (IPL_DEPTHに対応した型 *)(img->imageData + img->widthStep * Y ) + X * 総チャンネル数 + 目的チャンネル ) IPL_DEPTH_8U, 3チャンネル BGRなら 青: *( (unsigned char *)(img->imgData + img->widthStep * Y ) + X * 3 + 0) 緑: *( (unsigned char *)(img->imgData + img->widthStep * Y ) + X * 3 + 1) 赤: *( (unsigned char *)(img->imgData + img->widthStep * Y ) + X * 3 + 2) 直接アクセスするので処理は早いがプログラムがやや複雑 それぞれ、あなたのプログラムに合せてください。