【OpenCV】画素値が取得できない??

公開日: : 最終更新日:2014/08/14 OpenCV

スポンサーリンク

IplImageに格納された画素値を利用してフィルター処理を行おうとしましたが、なぜか画素値が取得されませんでした。

IplImage *tmp = cvLoadImage("srcimg.jpg",CV_LOAD_IMAGE_GRAYSCALE);
int width = tmp->width;
int height = tmp->height;
IplImage *dst = cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
for(int y=0;y<height;y++)
{
	for(int x=0;x<width;x++)
	{
		int grey = (int)tmp->imageData[tmp->widthStep * y + x ];//全て0??
		if(grey<10)
		{
			dst->imageData[dst->widthStep * y + x ] = 255;
		}
		else
		{
			dst->imageData[dst->widthStep * y + x ] = 0;
		}
	}
}
cvSaveImage("dstimg.jpg",dst);

簡単な反転処理のつもりだったのですが途中の”grey”の値がすべて0になってしまってうまくいきませんでした。この場合だと真っ白な画像が出力されてしまっていました。

小一時間も悩んだ結果、キャストが駄目ということがわかりました。

IplImage *tmp = cvLoadImage("srcimg.jpg",CV_LOAD_IMAGE_GRAYSCALE);
int width = tmp->width;
int height = tmp->height;
IplImage *dst = cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
for(int y=0;y<height;y++)
{
	for(int x=0;x<width;x++)
	{
		unsigned char tmpgrey = tmp->imageData[tmp->widthStep * y + x ];
		int grey = (int)tmpgrey;
		if(grey<10)
		{
			dst->imageData[dst->widthStep * y + x ] = 255;
		}
		else
		{
			dst->imageData[dst->widthStep * y + x ] = 0;
		}
	}
}
cvSaveImage("dstimg.jpg",dst);

一回はさむとうまくいきました。

スポンサーリンク
Amazon
  • このエントリーをはてなブックマークに追加

関連記事

OpenCVで矢印を描画する

OpenCVで矢印を描画するという関数が無いみたいだったので作りました。書いていることは参考リンク先

記事を読む

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Python版のサンプルは見つかるので

記事を読む

OpenCV3.1をopencv_contrib付きでVisual Studio2013でビルドしてインストールする

はじめに OpenCV3.1でトラッキングがしたいと思いインストーラでインストールしたのですが、ど

記事を読む

OpenCV3.1のTracking APIでトラッキングを試す

はじめに 先日OpenCV3.1をopencv_contrib付きでインストールしてTrackin

記事を読む

チェスボード画像自動生成ツール

1マスのサイズ(ピクセル) マスの数× 左上が白 枠をつけるか 枠の色白黒

記事を読む

【Laravel5】既存のDBからデータを取得して表示する

はじめに 今まで作ったWebサイトをLaravel5で見れるようにし

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Pyth

Intel Corei7-7700TでHTC Viveの動作確認

はじめに HTC ViveというVRヘッドセットで遊んでみたのでその

【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイ

OpenCV3.1のTracking APIでトラッキングを試す

はじめに 先日OpenCV3.1をopencv_contrib付きで

パソコンを複数台使う際便利なツール

はじめに 先日、機械学習用にGPUを積んだBTOパソコンを購入しまし

OpenCV3.1をopencv_contrib付きでVisual Studio2013でビルドしてインストールする

はじめに OpenCV3.1でトラッキングがしたいと思いインストーラ

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑