Ejemplo n.º 1
0
void MainWindow::setShowImage(cv::Mat &img)
{
    if(colorType == myCV::GRAY && pic_status != 1)
    {
        ui->graphicsView->initialize(1, img.cols, img.rows);
        pic_status = 1;
    }
    else if(colorType != myCV::GRAY && pic_status != 3)
    {
        ui->graphicsView->initialize(4, img.cols, img.rows, 2);
        pic_status = 3;
    }

    std::vector<cv::Mat> img_set(1);

    if(colorType == myCV::GRAY)
    {
        myCV::myCvtColor(img, img, myCV::GRAY2GBR);
        ui->graphicsView->setImage(img);
        return;
    }

    split3(img, colorType, img_set);
    img_set[0] = image.clone();
    ui->graphicsView->setImage(img_set);
}
Ejemplo n.º 2
0
int main(int argc,char* argv[])
{
	int w, h;
	int board[12][12];//表示、非表示のフラグ格納用配列	
	int mask[12][12];

	int mine_sum = 10;
	IplImage *img,*img_out;
	int point[2];
	bool clear_flag = false;
	bool false_flag = false;

	if((img = cvCreateImage(cvSize(WIDTH, HEIGHT), IPL_DEPTH_32F, 3)) == NULL) {
		printf("画像リソースを確保できません。\n");
		return -1;
	}
	
	w = WIDTH, h = HEIGHT;
	img_out = cvCreateImage(cvSize(w, h), IPL_DEPTH_8U, 3);	// 整数型画像リソース確保

	cvNamedWindow("mine_s");
	cvSetMouseCallback("mine_s", on_mouse, point);
	cvSet(img, cvScalar(0,0,0), 0);	// 画像リソース初期化
	
	img_set(img,h,w);		//imgに色を付ける
	map_set(board);			//board初期化
	map_set(mask);			//mask初期化
	mine_set(mask,mine_sum);//地雷セット
	mask_set(mask);

	while(1){
			//左クリックされた時の処理
			if(get_Lpoint().x != -1 && get_Lpoint().y != -1){
				L_button_reverse(get_Lpoint().x,get_Lpoint().y,board,mask);
				character(img,mask,board);
				//地雷を踏んだか調べる
				if(mask[get_Lpoint().y/40][get_Lpoint().x/40-1] == -2){
					false_flag = true;
				}
				set_Lpoint(-1,-1);
			}
			//GameClearCheck
			clear_flag = clear_check(board,mask,mine_sum);
			if(get_Rpoint().x != -1 && get_Rpoint().y != -1){
				R_button_reverse(get_Rpoint().x,get_Rpoint().y,board);
				exclamation_draw(img,board);
			}

		if(clear_flag){
			printf("GameClear\n");
			//break;
		}
		if(false_flag){
			printf("GameOver\n");
			//break;
		}
		cvConvertImage(img, img_out);	// 浮動小数点数型から整数型画像に変換
		cvShowImage("mine_s", img_out);			// 表示
		if(cvWaitKey(33) == 27) break;		// ESCを押した時終了
	
	}
	// ウィンドウ・キャプチャ・画像リソースの解放
	cvDestroyAllWindows();
	cvReleaseImage( &img_out);
 	cvReleaseImage( &img);
	return 0;
}
Ejemplo n.º 3
0
void demo_init(void)
{
    img_set(0xFF, image);
    img_copy(0, image);
}