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

mr_tyman

Пользователи
  • Количество публикаций

    4
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О mr_tyman

  • Звание
    Новичок
  1. WinForm и OpenCV

    В общем проблема была в том, что cvWaitKey не работает без окон вызванных средствами OpenCV. А без cvWaitKey все формы виснут. Да и не только формы. Если тупо в цикл выводить картинку: while (true) cvShowImage("Image", image); то вместо картинки мы будем видеть серый экран, приходится добавить cvWaitKey(1); while (true) { cvShowImage("Image", image); cvWaitKey(1); } но можно использовать для этой цели вот это: (собсно обработка сообщений в том числе и происходит в cvWaitKey) MSG message; PeekMessage(&message, 0, 0, 0, PM_REMOVE); TranslateMessage(&message); DispatchMessage(&message);
  2. WinForm и OpenCV

    Спасибо за идею, буду эксперементировать
  3. WinForm и OpenCV

    Так а каким тогда образом добавление задачи отображения картинки средствами OpenCV в цикл поможет не занимать все ресурсы? Наверное что-то другое... Пробовал Sleep, не помогает. Ни 1 мс ни 1000, и конструкции типа time_p=0; start_p=clock(); while (time_p<0.1) { end_p=clock(); time_p=(double) (end_p-start_p)/CLOCKS_PER_SEC; } тоже не помогают. Есть еще идеи?
  4. WinForm и OpenCV

    День добрый! Написал небольшую программу в консольной версии на OpenCV, в нормальный вид перегнал на Visual Studio 2010 с использованием Windows form. И столкнулся с проблемой. В начале вызывается основная форма для работы, на ней есть PictureBox куда через BitImage отправляю на показ картинку. После нажатия кнопки "Старт" на этой форме в цикле начинаю получать кадр с IP-камеры, и обрабатывать его с помощью OpenCV. В связи с использованием PictureBox надобности в окошках для показа картинки от OpenCV нету. И тут возникает проблема: если в цикле обработки нету ни одного cvShowImage, то программа запускается, работает, на форме видно как идут кадры в PictureBox, но форма висит. Ничего нажать на ней нельзя. В итоге пока приходится открывать пустое окошко и Move'ать его за пределы видимости экрана, тогда все работает. Кто подскажет как с этим справиться? (Желательно без переписывания всего кода с использованием QT или еще чего другого) Заранее большое спасибо за ответ!
×