Страница 1 из 1

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

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

Вебкамера подключаэтся к LabView с помощью avicap32.dll (она находится в windows->system32)
Vision нет и пока не планирую использывать.

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

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

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

Добавлено: 23 дек 2020, 19:07
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).

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

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

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

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

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

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

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

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

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

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

Добавлено: 24 дек 2020, 08:33
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 КБ) 95 скачиваний
Sequence Structure лучше избегать, если это возможно, иначе могут быть сложности в дальнейшем (например, понадобится остановить программу где-то "посредине" последовательности). Timed Loop тоже никакого профита здесь не несёт, лучше обычный While. Да и вообще, если честно, идея выводить поток сперва в .NET контрол, а потом грабить из него буфер довольно "костыльная", как по мне, потому что идёт завязка на FP как промежуточный контейнер, это в плане производительности не лучшее решение. Если не хочется использовать Vision, то можно было бы создать промежуточный буфер в памяти и писать туда поток, а в параллельном цикле читать оттуда. На панель выводить в отдельном цикле с более низкой частотой. Тогда всё было бы развязано. Но готовый код по .NET решению я сейчас предоставить не смогу, можете попробовать пошерстить форумы типа StackOverflow.

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

Добавлено: 10 янв 2021, 14:15
Niels
спасибо за VI.
Но никак не хочет работать... :) незнаю почему...
Камера подключается и в левом пикчербоксе(PictureBox) есть изображение а в правом (cam picture) нет.
Думаю, ошыбка уже выходит на Конструкторе Bitmap original.

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

Добавлено: 10 янв 2021, 15:31
dadreamer
Niels писал(а): 10 янв 2021, 14:15Но никак не хочет работать... :) незнаю почему...
Такая ошибка возникает, когда в PictureBox нет изображения и объект Image равен NULL (т.е., пустой). Попробуйте вставить обработку этого случая - см. пример.

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

Добавлено: 10 янв 2021, 17:05
Niels
обработка PNG картинки pаботает. PNG загружается в cam picture и массив заполняется значениями пикселей.
С вебкамерой cam picture остаётся пустым как и массив. Не заходит в default case, идёт только через нулевой case.
Но ошыбок нет.
Или я что то не так сделал?

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

Добавлено: 10 янв 2021, 17:25
dadreamer
Niels писал(а): 10 янв 2021, 17:05Или я что то не так сделал?
Сложно сказать. Веб-камера вообще что-то показывает? После запуска программы в PictureBox на FP есть изображение?

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

Добавлено: 10 янв 2021, 17:42
Niels
Вебкамера работает, вроде всё как надо. Но cam picture пустой.
Button с иероглифами(под левым PictureBox) ничего не даёт.

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

Добавлено: 10 янв 2021, 17:53
Niels
А какая Функция там у Type Cast и почему к нему 0 подключен?
Из него выходит постоянно ноль, поэтому и не заходит в default case.

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

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