• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ScanLineを使っての画像の色データ取得)

ScanLineを使って画像の色データを取得する方法

このQ&Aのポイント
  • 現在、Visual C++を使用して、画像のグレースケール化、二値化などの加工を行うプログラムを作成しています
  • しかし、各ピクセルの値を1つずつ取得する方法では計算量が多くなり、処理時間がかかってしまっています
  • そこで、ScanLineを用いて1行のデータを取得するプログラムを作成したいのですが、正しいプログラム文がわかりません

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

  • ベストアンサー
回答No.1

 こんばんは。  BitmapDataクラスです。  http://msdn.microsoft.com/ja-jp/library/system.drawing.imaging.bitmapdata_members(v=VS.71).aspx  かなり複雑なものですので、一貫したプログラムを書くには、時間がかかります。  取りあえず、触りだけ書いておきます。大体以下の様になります。 System::Drawing::Bitmap^ bmap_gray = gcnew System::Drawing::Bitmap(pictureBox1->Image); System::Drawing::Rectangle rect(0, 0, bmap_gray->Width, bmap_gray->Height); //bmap_grayをロックしてBitmapDataクラスを得る System::Drawing::Imaging::BitmapData^ bmpData = bmap_gray->LockBits(rect, System::Drawing::Imaging::ImageLockMode::ReadWrite, bmap_gray->PixelFormat); //イメージへのポインタを取りだす(イメージのピクセルフォーマットによってキャストするサイズが左右されるので要注意) //以下は32bitの場合 System::UInt32* ptr = static_cast<System::UInt32*>(bmpData->Scan0.ToPointer());

関連するQ&A