значения и обработка пикселей с вебкамеры

Обсуждение вопросов, связанных с обработкой аудио и видео информации
Ответить
Niels
beginner
beginner
Сообщения: 11
Зарегистрирован: 22 дек 2020, 22:55
Версия LabVIEW: 2014

значения и обработка пикселей с вебкамеры

Сообщение Niels »

Всем привет,
Не подскажите как добратся до значений пикселей из пикчербокса вебкамеры, с целью определения и визуализатции распределения интенсивности в заданных строках или в области изображения.
(примерно как здесь..... viewtopic.php?f=106&t=9027)
Причём в непрерывном режиме. т.е. - Вебкамера снимает непрерывно и одновременно график показывает распределение интенсивности, например из средней строки массива пикчербоса...

Вебкамера подключаэтся к LabView с помощью avicap32.dll (она находится в windows->system32)
Vision нет и пока не планирую использывать.
Вложения
WebCam_avicap32.vi
(40.56 КБ) 7 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5077
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 14 раз
Поблагодарили: 25 раз

Re: значения и обработка пикселей с вебкамеры

Сообщение IvanLis »

Niels писал(а): 23 дек 2020, 02:45 Не подскажите как добратся до значений пикселей из пикчербокса вебкамеры
PictureBox имеет метод GetImage, вот через него и дергайте
Снимок экрана от 2020-12-23 18-47-20.png
Снимок экрана от 2020-12-23 18-47-20.png (7.6 КБ) 286 просмотров
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3610
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2020
Благодарил (а): 3 раза
Поблагодарили: 24 раза
Контактная информация:

Re: значения и обработка пикселей с вебкамеры

Сообщение dadreamer »

Можно как-то так, должен вернуть исходные данные.
2020-12-23_21-02-35.jpg
Bitmap Pointer to LV_Image.vi ‏брать здесь: BITMAP to Array or Array to BITMAP (.NET) Using LabVIEW. Объект Bitmap находится в коллекции System.Drawing(4.0.0.0).
Niels
beginner
beginner
Сообщения: 11
Зарегистрирован: 22 дек 2020, 22:55
Версия LabVIEW: 2014

Re: значения и обработка пикселей с вебкамеры

Сообщение Niels »

Про GetImage знаю, но незнаю куда и как его приделать чтобы значение в массиве постоянно обновлялись.
Да и есть сомнения что там правельные значения.
Вот что выдаёт GetImage:
Думаю что в массиве надпись "PICTUREBOX"... :) если хорошо посмотреть на числа...
Вложения
2.PNG
GetImage 24.PNG
Artem.spb

Activity Автор
doctor
doctor
Сообщения: 2366
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 12 раз
Поблагодарили: 54 раза
Контактная информация:

Re: значения и обработка пикселей с вебкамеры

Сообщение Artem.spb »

Niels писал(а): 23 дек 2020, 19:27 Про GetImage знаю, но незнаю куда и как его приделать чтобы значение в массиве постоянно обновлялись.
Приделать его в последнем цикле, вызывать эту функцию постоянно. сама по себе она вызываться не будет
Думаю что в массиве надпись "PICTUREBOX"... :) если хорошо посмотреть на числа...
Если имя индикатора спрятать, то его и не будет.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3610
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2020
Благодарил (а): 3 раза
Поблагодарили: 24 раза
Контактная информация:

Re: значения и обработка пикселей с вебкамеры

Сообщение dadreamer »

У меня, кстати, метод Get Image как-то нестабильно работает. Частенько возвращает серый фон вместо картинки. Проверял на :labview: 2020 64-bit. Да и надо следить, чтобы PictureBox был точно такого же размера, как и загруженная в него картинка. Иначе либо обрежет, либо создаст рамку по краям. Ну, и плюсом идёт Label/Caption индикатора, хотя это не великая проблема. Bitmap Pointer to LV_Image.vi справляется с задачей намного лучше.
Niels
beginner
beginner
Сообщения: 11
Зарегистрирован: 22 дек 2020, 22:55
Версия LabVIEW: 2014

Re: значения и обработка пикселей с вебкамеры

Сообщение Niels »

Спасибо за идеи!
Но пока не получается.
А можно по подробней? Как правильно вызывать в последнем цикле эту функцию GetImage постоянно? Пробовал с While loop, но всё по прежнему. Числа в массиве не изменяются.

Пробовал и с Bitmap Pointer to LV_Image.vi но ошибка на Constructor Node/объекте Bitmap. Bitmap Pointer to LV_Image.vi я просто перетянул из папки в Block Diagram. Это правилно? Или надо как то по особому?
Да и если честно, то не очень хорошо понимаю как это всё к останому подключать. Не могли бы Вы это подробней описать или скриншот показать?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3610
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2020
Благодарил (а): 3 раза
Поблагодарили: 24 раза
Контактная информация:

Re: значения и обработка пикселей с вебкамеры

Сообщение dadreamer »

Niels писал(а): 23 дек 2020, 22:32Пробовал и с Bitmap Pointer to LV_Image.vi но ошибка на Constructor Node/объекте Bitmap. Bitmap Pointer to LV_Image.vi я просто перетянул из папки в Block Diagram. Это правилно? Или надо как то по особому?
Да и если честно, то не очень хорошо понимаю как это всё к останому подключать. Не могли бы Вы это подробней описать или скриншот показать?
Как-то так.
WebCam_avicap32.vi
lv2014
(90.65 КБ) 8 скачиваний
Sequence Structure лучше избегать, если это возможно, иначе могут быть сложности в дальнейшем (например, понадобится остановить программу где-то "посредине" последовательности). Timed Loop тоже никакого профита здесь не несёт, лучше обычный While. Да и вообще, если честно, идея выводить поток сперва в .NET контрол, а потом грабить из него буфер довольно "костыльная", как по мне, потому что идёт завязка на FP как промежуточный контейнер, это в плане производительности не лучшее решение. Если не хочется использовать Vision, то можно было бы создать промежуточный буфер в памяти и писать туда поток, а в параллельном цикле читать оттуда. На панель выводить в отдельном цикле с более низкой частотой. Тогда всё было бы развязано. Но готовый код по .NET решению я сейчас предоставить не смогу, можете попробовать пошерстить форумы типа StackOverflow.
Niels
beginner
beginner
Сообщения: 11
Зарегистрирован: 22 дек 2020, 22:55
Версия LabVIEW: 2014

Re: значения и обработка пикселей с вебкамеры

Сообщение Niels »

спасибо за VI.
Но никак не хочет работать... :) незнаю почему...
Камера подключается и в левом пикчербоксе(PictureBox) есть изображение а в правом (cam picture) нет.
Думаю, ошыбка уже выходит на Конструкторе Bitmap original.
Вложения
4.PNG
5.PNG
5.PNG (33.52 КБ) 128 просмотров
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3610
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2020
Благодарил (а): 3 раза
Поблагодарили: 24 раза
Контактная информация:

Re: значения и обработка пикселей с вебкамеры

Сообщение dadreamer »

Niels писал(а): 10 янв 2021, 14:15Но никак не хочет работать... :) незнаю почему...
Такая ошибка возникает, когда в PictureBox нет изображения и объект Image равен NULL (т.е., пустой). Попробуйте вставить обработку этого случая - см. пример.
Вложения
Img_Test.vi
lv2014
(12.2 КБ) 5 скачиваний
Niels
beginner
beginner
Сообщения: 11
Зарегистрирован: 22 дек 2020, 22:55
Версия LabVIEW: 2014

Re: значения и обработка пикселей с вебкамеры

Сообщение Niels »

обработка PNG картинки pаботает. PNG загружается в cam picture и массив заполняется значениями пикселей.
С вебкамерой cam picture остаётся пустым как и массив. Не заходит в default case, идёт только через нулевой case.
Но ошыбок нет.
Или я что то не так сделал?
Вложения
6.PNG
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3610
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2020
Благодарил (а): 3 раза
Поблагодарили: 24 раза
Контактная информация:

Re: значения и обработка пикселей с вебкамеры

Сообщение dadreamer »

Niels писал(а): 10 янв 2021, 17:05Или я что то не так сделал?
Сложно сказать. Веб-камера вообще что-то показывает? После запуска программы в PictureBox на FP есть изображение?
Niels
beginner
beginner
Сообщения: 11
Зарегистрирован: 22 дек 2020, 22:55
Версия LabVIEW: 2014

Re: значения и обработка пикселей с вебкамеры

Сообщение Niels »

Вебкамера работает, вроде всё как надо. Но cam picture пустой.
Button с иероглифами(под левым PictureBox) ничего не даёт.
Вложения
7.PNG
Niels
beginner
beginner
Сообщения: 11
Зарегистрирован: 22 дек 2020, 22:55
Версия LabVIEW: 2014

Re: значения и обработка пикселей с вебкамеры

Сообщение Niels »

А какая Функция там у Type Cast и почему к нему 0 подключен?
Из него выходит постоянно ноль, поэтому и не заходит в default case.
Вложения
8.PNG
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3610
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2020
Благодарил (а): 3 раза
Поблагодарили: 24 раза
Контактная информация:

Re: значения и обработка пикселей с вебкамеры

Сообщение dadreamer »

Niels писал(а): 10 янв 2021, 17:53А какая Функция там у Type Cast и почему к нему 0 подключен?
Преобразует .NET ссылку в число. А какой тип числа у "синей" константы? Должно быть U64. В тестовом примере у меня всё работает, почему у вас не хочет работать - загадка... :dntknw:
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Работа с графикой и звуком»