2013-09-06 2 views
1

Я хотел бы показать изображение в opencv. Я создаю окно с помощью «namedWindow» и показываю изображение с помощью «imshow». в конце кода я использую «cin», поэтому программа не прекращается автоматически. часть моего кода выглядит следующим образом:Вставка задержки после функции imshow в opencv

namedWindow("image"); 
imshow("image",aa); 
waitKey(500); 
cin >> aaa; 
return 0; 

Если я устранить заявление WaitKey, я не могу видеть изображение. Почему так? следующий оператор (cin >> aaa) не выполняется после выполнения imshow? почему задержка важна?

ответ

0

резюме :: WaitKey (0) изображение будет оставаться там

+0

Да, спасибо! не могли бы вы рассказать мне, почему важно вставить waitkey? –

+0

, если вы не поместите waitkey, вы не увидите изображение, и если вы положите 0, он останется там, если вы поместите номер, который ждет программа, сообщите, чтобы этот период прошёл и закрыл окно – Engine

2

это не так много задержки, что важно, но более скрытая функциональность внутри WaitKey.

imshow будет просто скопировать изображение, но WaitKey наконец блитирования его (или, посылать сообщения на ваш зева nessecary для этого)

так что вам нужно позвонить WaitKey в любом случае, если вы используете imshow , 1 (миллисекунда) - это наименьшее значение, которое вы можете поместить здесь для непрерывной рендеринга, 0 или -1 будет блокироваться, пока вы не нажмете клавишу.

Кроме того, waitkey прослушивает нажатия клавиш в этом img-окне, cin прослушивает ввод из окна консоли.

Смежные вопросы