現在地 >> メニュー >> OpenCV >> IplImage編02 >> IplImage編02::間接アクセス >> IplImage編02::まとめ7
関連:IplImage編02::まとめ5IplImage編02::まとめ6IplImage編02::まとめ8IplImage編02::まとめ9

問題


マルチチャネルのIplImageを作成して、(100,50)の位置を適当なピクセル値で書きかえ、
「cvGet2D関数」で周辺のピクセル値を取り出して出力せよ。

答え

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <cstdio>

int main( int argc, char **argv)
{	
	IplImage *imgA = cvCreateImage(cvSize(400,400),IPL_DEPTH_8U,3);
	cvSet (imgA, cvScalarAll(255));
	cvSet2D(imgA,50,100,CV_RGB(255,80,120));

	puts("Set CV_RGB(255,80,120)");

	CvScalar pixel;
	for(int loopY = 49;loopY < 52;++loopY)
	{
		pixel = cvGet2D(imgA,loopY,100);
		printf("[100,%d]:(B,G,R) = (%.f,%.f,%.f)\n",loopY,pixel.val[0],pixel.val[1],pixel.val[2]);	
	}

	cvNamedWindow("cvGet2D",CV_WINDOW_AUTOSIZE);	
	cvShowImage("cvGet2D",imgA);

	cvWaitKey(0); // 0秒待つ => ずっと入力待ち
	cvReleaseImage(& imgA);  //メモリ解放
	
	cvDestroyWindow("cvGet2D");  //ウィンドウの破棄

	return 0;
}

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます