Перейти к содержимому
Compvision.ru
mrgloom

не рисует точки

Recommended Posts

IplImage* img;

bool flag=true;

void onMouse( int event, int x, int y, int, void* )

{

    if( event == CV_EVENT_LBUTTONDOWN )

	{

		if(flag)

			cvCircle(img,cvPoint(x,y),3,cvScalar(255,255,255));

		else

			cvCircle(img,cvPoint(x,y),3,cvScalar(0,0,255));

	}


	if( event == CV_EVENT_RBUTTONDOWN )

		flag=!flag;

}


cv::namedWindow( "img", 0 );

  cv::setMouseCallback( "img", onMouse, 0 );


	for(;

	{

		cv::imshow("img", (cv::Mat)img);


		int c = cv::waitKey(0);

		switch( (char)c )

		{

		case 27:

			cout << "Exiting ...\n";

			cvSaveImage("out.png",img);

			return 0;

		case 'c':

			{

				break;

			}


		}

	}[/code]

сохраняются они нормально в out.png, а вот при отрисовке не появляются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

cv::waitKey(0); - ждет бесконечно, надо поставить что то типа: cv::waitKey(10);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Думаю, что поставив последним параметром в cv::namedWindow не ноль, а единицу, ты исправишь положение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дело вроде было в waitKey

но что странно на случай

case 'c'
постоянно приходится переключать раскладку(на каждой итерации)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×