2013-04-03 3 views
0

Я записываю видеоматериал и предварительно формирую различные методы обработки изображений на каждом кадре для получения желаемого результата.Запись и показ изображения OpenCV

Теперь, когда я получаю результат, я ищу, что хочу захватить и сохранить определенный кадр на моем hdd.

Для этого я использую функцию imwrite для записи кадра в виде jpg. то я использую imshow для отображения этого фрейма в namesWindow.

Проблема заключается в том, что, когда все условия встречаются, чтобы сохранить изображение моей программы вместо того, чтобы хранить изображения, дает мне ошибку времени выполнения .......

Вот код:

for(vector<double>::iterator iter_dis = Left_Point_distance.begin(); iter_dis != Left_Point_distance.end();++iter_dis) 
    { 


     if(*iter_dis > 20 && center.y >= 120 && center.x >=510 && Box[0].width > Box[0].height) 
     { 

      char* window_Punches = "Punches"; 
      namedWindow(window_Punches ,1); 

      Mat Hook; 

      imwrite("C:\\Hook.jpg", Hook); 
      imshow(window_Punches, Hook); 


     } 


     if(*iter_dis >20 && center.y <=60) 
     { 

     } 

    } 

Переход через OpenCV учебники Это как это, как его сделать, но в моем случае это не работает ......

Дальше больше весь процесс происходит в бесконечное время цикла, и видеокадров в сохраняются в матовой рамке; который затем отображается в окне с помощью функции imshow.

Может ли кто-нибудь определить, что я делаю неправильно здесь ....?

ответ

3

Вы определяете Mat крюк, но он пуст, пытаясь писать imwrite()

+0

Хорошо, как я могу захватить текущий кадр из видеопоследовательности, сохранить его в Mat Hook, если условия встречаются и сохраняют/отображают этот кадр ...? – Tomazi

+0

Что такое Коробка в коде, это кадр, полученный камерой? –

+0

box - это ограничивающий прямоугольник, центр - это центр этого окна, а Left_Point_distance хранит расстояние между двумя точками ... видеопоследовательность, полученная camere, сохраняется на кадр в кадре Mat в верхней части бесконечного цикла while не показывать в этом бите кода – Tomazi

0

Что вы ожидаете от этого кода:

Mat Hook; 

    imwrite("C:\\Hook.jpg", Hook); 
    imshow(window_Punches, Hook); 

Вы создаете пустую матрицу и использовать ее.

+0

Хорошо, как я захватил текущий кадр из видеопоследовательности хранит его в Mat Hook, если условия встречаются и сохраняют/отображают этот кадр ...? – Tomazi

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