現在地: メニュー >> 発展編05 >> 発展編05::ImagingSubSet >> 発展編05::輝度値変更 >> 発展編05::まとめコード4

問題


画像を読み込んで明るさを変更せよ。

答え

#include <iostream>
#include <GL/glut.h>
#include <cv.h>
#include <highgui.h>

//----------- 各種外部変数 -----------------//
const char *filename = "test2.jpg";
IplImage *imgA;

//------------ プロトタイプ宣言 ---------------------//
void display();
void reshape(int w, int h);

//------------- OpenGLの初期設定 --------------------//
void GLUT_INIT()
{
	glutInitDisplayMode(GLUT_RGBA| GLUT_DOUBLE);
	glutCreateWindow("Imaging Subset");
}


void GLUT_CALL_FUNC()
{
	glutDisplayFunc(display);
	glutReshapeFunc(reshape);
}

void MY_INIT()
{
	glClearColor(1.0, 1.0, 1.0, 1.0);
	glutReshapeWindow(imgA->width, imgA->height); //ウィンドウサイズを画像と合わせる
}

//------------- メイン関数 ------------------//
int main(int argc, char **argv)
{
	glutInit(&argc,argv);

	GLUT_INIT();
	GLUT_CALL_FUNC();

	imgA = cvLoadImage( filename, CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
	if(imgA ==NULL){
		std::cerr<< filename <<" : Can't Load Image .\n";
		return -1;
	}


	MY_INIT();
	glutMainLoop();

	return 0;
}

//-------------- ここから各種コールバック -----------------//
void display()
{
	glClear(GL_COLOR_BUFFER_BIT);

	glDrawPixels(imgA->width,imgA->height,GL_BGR,GL_UNSIGNED_BYTE,imgA->imageData);

	glutSwapBuffers();
}

void reshape(int w, int h)
{
	glViewport(0, 0, w, h);
	glPixelZoom(static_cast<float>(w)/imgA->width, -static_cast<float>(h)/imgA->height);

	glRasterPos2i(-1, 1);//スクリーンのサイズが(2×2)

	//輝度値の変更
	glMatrixMode(GL_COLOR);
	glScalef(2.0f, 2.0f, 2.0f);
	glMatrixMode(GL_MODELVIEW);
}

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






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


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

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