Отражение по горизонтали видеопотока с web камеры

Обсуждение вопросов, связанных с обработкой аудио и видео информации

Отражение по горизонтали видеопотока с web камеры

Postby Andrey Petrzhik on 13 Jul 2018, 20:06

Добрый день!
У меня есть хитрая камера от микроскопа, которая очень крутая, но изображение гонит "отраженное" по горизонтали.
Как это выглядит, видно на приложенном принтскрине. Да, на бумажке должно отображаться "лента".
Есть ли какой-то простой способ в Vision and Motion отразить видеопоток по горизонтали... возможно как-то через ROI можно сделать?
Спасибо большое за помощь, сам нагуглить и сообразить что-то не смог пока...
Attachments
otrazit.png
PLD_cam_logger.vi
(45.04 KiB) Downloaded 4 times
code.jpg
Andrey Petrzhik
beginner
beginner
 
Posts: 34
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Отражение по горизонтали видеопотока с web камеры

Postby dadreamer on 13 Jul 2018, 20:41

IMAQ Symmetry VI w/ Type of Symmetry = Vertical
User avatar
dadreamer
professor
professor
 
Posts: 3062
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 765
I/O VIP vision internet

Re: Отражение по горизонтали видеопотока с web камеры

Postby Andrey Petrzhik on 13 Jul 2018, 21:53

Круто! Только у меня Labview 2012 + IMAQ 2012... и там вроде как такого нет.
Но я понял в какую сторону смотреть, спасибо!
Andrey Petrzhik
beginner
beginner
 
Posts: 34
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Отражение по горизонтали видеопотока с web камеры

Postby dadreamer on 13 Jul 2018, 23:00

Andrey Petrzhik wrote:Только у меня Labview 2012 + IMAQ 2012... и там вроде как такого нет.

Функция довольно старая, ещё в 2009-м Вижене была. Наверно, надо IMAQdx поставить, тогда появится. Ну, или можно картинку перегнать в массив, развернуть массив построчно и перегнать его обратно в картинку.
User avatar
dadreamer
professor
professor
 
Posts: 3062
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 765
I/O VIP vision internet

Re: Отражение по горизонтали видеопотока с web камеры

Postby Andrey Petrzhik on 16 Jul 2018, 19:46

Странно, но такой функции у меня нет. Установлена Labview 12 и "NI Vision Acquisition Software August 2012", содержащий Ni IMAQdx 4.0.

Но фиг с ним. Перегоняю картинку в массив, потом кручу массив как вот тут: http://www.labview.ru/forum/viewtopic.php?p=16486 , и его опять в картинку. Но не работает - вылетает ошибка "Invalid image type". Что же не так?..
Attachments
flip_horiz.jpg
Andrey Petrzhik
beginner
beginner
 
Posts: 34
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Отражение по горизонтали видеопотока с web камеры

Postby dadreamer on 16 Jul 2018, 20:56

Andrey Petrzhik wrote:Но не работает - вылетает ошибка "Invalid image type". Что же не так?..

Если с чёрно-белой картинкой работаете, то брать надо выход Grayscale (U8), а не Float. Если же хотите с цветной RGB (U32) работать, то поменять надо формат у IMAQ Create, и далее пользовать ColorImageToArray / ArrayToColorImage. Ещё одну странность заметил - на IMAQ Create подаётся ссылка, а не строка, не знаю, насколько это будет критично в дальнейшем, но чтобы избежать багов, лучше присвоить картинке собственное уникальное имя.

Далее, операция разворота 2D-массива в принципе уже реализована. В пакете OpenG есть :vi: Reverse 2D Array, который выполняет это:
2018-07-16_22-53-56.jpg
2018-07-16_22-54-12.jpg
Можно воспользоваться кодом (вариант "By Columns") или поставить тулкит.
User avatar
dadreamer
professor
professor
 
Posts: 3062
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 765
I/O VIP vision internet

Re: Отражение по горизонтали видеопотока с web камеры

Postby Andrey Petrzhik on 17 Jul 2018, 19:28

Ура, получилось! Ничего дополнительно не устанавливал. Кому интересно, файлик приложен. Вертит/отражает видеопоток с usb камер.
Attachments
PLD_cam_logger.vi
(55.48 KiB) Downloaded 6 times
Andrey Petrzhik
beginner
beginner
 
Posts: 34
Joined: 17 Nov 2015, 11:57
LabVIEW Version: 12
Karma: 0

Re: Отражение по горизонтали видеопотока с web камеры

Postby dadreamer on 17 Jul 2018, 19:55

Рад, что получилось.

А теперь - классика.
Caveats and Recommendations when Using Events in LabVIEW
Цикл While внутрь Эвент структуры помещать крайне не рекомендуется. Но! Следует Эвент структуру поместить в цикл While. А получение данных с камеры вынести вообще в отдельный цикл. Дело в том, что сейчас при текущей архитектуре событие нажатия кнопки Start обрабатывается однократно, а все последующие нажатия не могут быть обработаны, т.к. Эвент структура уже отработала и некому её перезапустить. В цикле While она бы крутилась постоянно и всегда могла бы обработать нажатия кнопок и прочее. Кроме того, запуская внутри Эвента цикл, мы не даём структуре возможность обработать прочие события, если они происходят, т.к. нужно ждать, пока отработает внутренний цикл. Стандартный подход - это выделять на все UI-события отдельный цикл с Эвент структурой, а всё остальное (работа с железом, логика, мат. операции) выполнять в каких-то других циклах. Посмотрите, например, шаблон State Machine / Автомат состояний, шаблон Producer-Consumer (Производитель-Потребитель) и т.д.
User avatar
dadreamer
professor
professor
 
Posts: 3062
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 765
I/O VIP vision internet


Return to Работа с графикой и звуком

Who is online

Users browsing this forum: No registered users and 4 guests

cron