Яркость выделенной области

Простейшие вопросы в области инженерной разработки
Аватара пользователя
dadreamer

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

Re: Яркость выделенной области

Сообщение dadreamer »

AN-G писал(а): 16 янв 2021, 09:56По поводу цикла понял, а вот куда и как не понимаю. Может пример какой есть?
Специально не искал, вот такой простейший пример сделал.
Field_Work.vi
lv2017
(11.58 КБ) 15 скачиваний
Field Props.ctl
lv2017
(4.46 КБ) 14 скачиваний
Из примера видно, что поле Index в кластере не имеет смысла (избыточность информации), т.к. после сортировки индекс каждого элемента в массиве уже определяет тот самый номер/индекс (-1), который вам хочется найти.
AN-G писал(а): 26 дек 2020, 20:14Программа должна ... наиболее интенсивному присвоить значение 1, чуть менее яркий объект должен получить значение 2 и т.д.

Ещё, у вас в профиле указана версия :labview: 2011, а выкладываете в 2017. По правилам надо исправить.
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

dadreamer писал(а): 16 янв 2021, 13:07
AN-G писал(а): 16 янв 2021, 09:56По поводу цикла понял, а вот куда и как не понимаю. Может пример какой есть?
Специально не искал, вот такой простейший пример сделал.Field_Work.viField Props.ctl
Из примера видно, что поле Index в кластере не имеет смысла (избыточность информации), т.к. после сортировки индекс каждого элемента в массиве уже определяет тот самый номер/индекс (-1), который вам хочется найти.
AN-G писал(а): 26 дек 2020, 20:14Программа должна ... наиболее интенсивному присвоить значение 1, чуть менее яркий объект должен получить значение 2 и т.д.

Ещё, у вас в профиле указана версия :labview: 2011, а выкладываете в 2017. По правилам надо исправить.
Премного благодарен!!! не знаю как так получилось, что в версии 17 сохранилось. Выложу сюда в версии 11. Не могли бы вы сюда выложить пример в версии 11(если не затруднит)?
Аватара пользователя
dadreamer

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

Re: Яркость выделенной области

Сообщение dadreamer »

AN-G писал(а): 18 янв 2021, 12:29Не могли бы вы сюда выложить пример в версии 11(если не затруднит)?
Вложения
Field_Work.vi
lv2011
(11.09 КБ) 15 скачиваний
Field Props.ctl
lv2011
(4.44 КБ) 14 скачиваний
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

dadreamer писал(а): 18 янв 2021, 14:57
AN-G писал(а): 18 янв 2021, 12:29Не могли бы вы сюда выложить пример в версии 11(если не затруднит)?
странным образом все файлы LV на домашнем компьютере стали 17 версии (даже те, которые я скачал и не открывал) :dntknw: поэтому принял решение удалить LV17. Свои версии программ выложу завтра в версии 11. Вам еще раз огромная благодарность. Сегодня на работе пробовал повторить вашу блок схему, но вызвало затруднение создание Field Props.ctl, а под конец еще и LV выкинул ошибку и выкинул из несохраненной программы :rtfm: так, что написанное не удалось восстановить. Завтра буду "адаптировать" ваш код к своему. По результатам отпишусь :bye:
Аватара пользователя
dadreamer

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

Re: Яркость выделенной области

Сообщение dadreamer »

AN-G писал(а): 18 янв 2021, 22:18вызвало затруднение создание Field Props.ctl
Creating Type Definitions and Strict Type Definitions

AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

Выкладываю ваши плюс свои исходники для просмотра. Пока еще пытаюсь внедрить ваш код в свою программу. Не получается вывести параметр средней яркости, хотя до этого все получалось. Сейчас до конца не разобрался в чем загвоздка. На выходе из моего VI почему-то значение "ноль".
Да , и еще хотел у вас спросить, как можно пристроить эти индексы выделенным областям. может есть для этого VI (типа ImageDraw или подобные)?
Вложения
Field Props.ctl
(5.12 КБ) 11 скачиваний
Field_Work.vi
(11.09 КБ) 11 скачиваний
Mean Light Meter.vi
Среднее значение яркости и область
(39.68 КБ) 12 скачиваний
Video_Bright_area_WEExp - копия.vi
сама программа
(84.9 КБ) 12 скачиваний
Аватара пользователя
dadreamer

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

Re: Яркость выделенной области

Сообщение dadreamer »

AN-G писал(а): 19 янв 2021, 11:50Пока еще пытаюсь внедрить ваш код в свою программу.
Не с того боку пристраиваете :wink:
2021-01-19_13-58-20.jpg
Цикл For, помеченный красным, удаляете, но внутренности должны остаться. Помеченное зелёным выносите за цикл. Массив свойств пропускаете через цикл по сдвиговым регистрам.
AN-G писал(а): 19 янв 2021, 11:50Да , и еще хотел у вас спросить, как можно пристроить эти индексы выделенным областям. может есть для этого VI (типа ImageDraw или подобные)?
Нарисовать что ли? IMAQ Overlay Text VI из палитры Overlay должен справиться. А так, у вас финальный массив ("Области (сорт.)" на картинке) уже должен быть упорядочен по возрастанию/убыванию (как захотите) яркости в каждой найденной области. Индекс элемента в массиве - индекс в ТЗ, за вычетом единицы, т.к. массивы в :labview: индексируются с нуля. Я продублировал этот индекс отдельным элементом в кластере, хотя он по идее не нужен. Но можно и этот элемент использовать.
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

dadreamer писал(а): 19 янв 2021, 12:10
AN-G писал(а): 19 янв 2021, 11:50Пока еще пытаюсь внедрить ваш код в свою программу.
Не с того боку пристраиваете :wink: 2021-01-19_13-58-20.jpgЦикл For, помеченный красным, удаляете, но внутренности должны остаться. Помеченное зелёным выносите за цикл. Массив свойств пропускаете через цикл по сдвиговым регистрам.
AN-G писал(а): 19 янв 2021, 11:50Да , и еще хотел у вас спросить, как можно пристроить эти индексы выделенным областям. может есть для этого VI (типа ImageDraw или подобные)?
Нарисовать что ли? IMAQ Overlay Text VI из палитры Overlay должен справиться. А так, у вас финальный массив ("Области (сорт.)" на картинке) уже должен быть упорядочен по возрастанию/убыванию (как захотите) яркости в каждой найденной области. Индекс элемента в массиве - индекс в ТЗ, за вычетом единицы, т.к. массивы в :labview: индексируются с нуля. Я продублировал этот индекс отдельным элементом в кластере, хотя он по идее не нужен. Но можно и этот элемент использовать.
Спасибо. Пока попробую сам(мы не ищем легких путей :haha: ). Если уж не будет получаться, то попрошу Вашей помощи. :wink:
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

К сожалению без Вашей помощи никак не обходится :dntknw: Сегодня немного изменил блок схему и все. Тот пример, что вы давали я вроде бы пристроил, но ввиду никакущего опыта не знаю насколько правильно это все работает. Еще хотел спросить: у меня основная версия программы должна быть разработана для ик-камеры на фпга. И сегодня я обнаружил, что она выкидывает ошибку при изменении параметра "Detecting Area". Ошибка "Not an Image". Подскажите, что я неправильно делаю.
Вложения
2tap 8bit centroid on FPGA.zip
LV15 программа для ик-камеры на фпга
(1.7 МБ) 12 скачиваний
Video_Bright_area.zip
LV15 проба
(73.67 КБ) 13 скачиваний
ошибка программы для ик-камеры на фпга
ошибка программы для ик-камеры на фпга
Аватара пользователя
dadreamer

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

Re: Яркость выделенной области

Сообщение dadreamer »

Ну, я думаю, тут объяснять даже ничего не надо.
2021-01-20_21-17-00.jpg
В обеих программах эта ошибка присутствует. Розовый провод по-хорошему надо заново проложить, как-то он криво там проложен, трасса аж за цикл уходит - трижды мышью пощёлкайте на разных его участках, чтобы увидеть.

Также не мешало бы вам подтянуть азы :labview: , если время есть, конечно. Трэвис Дж., Кринг Дж. «LabVIEW для всех» — основа, а для работы с Vision Dev. Module можно полистать Ю.В. Визильтер, С.Ю. Желтов, В.А. Князь, А.Н. Ходарев, А.В. Моржин «Обработка и анализ цифровых изображений с примерами на LabVIEW и IMAQ Vision». Но если времени мало, то просто поизучайте примеры в папке C:\Program Files\National Instruments\LabVIEW 2020\examples\Vision, много интересного найдёте для себя.
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

Азы у меня конечно никакие. LV начал изучать буквально недавно(нет и полугода)."Обработка и анализ..." у меня есть, но много непонятного, а вот за ссылку на первую книгу благодарю. Буду обучаться. Я просил помощи в индексации нужных областей на изображении. Никак не получается областям присвоить значения.
Аватара пользователя
dadreamer

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

Re: Яркость выделенной области

Сообщение dadreamer »

Там, где выделено зелёным, напрашивается ещё один цикл For.
2021-01-21_0-24-27.jpg
Проиндексируйте розовый массив в цикле (autoindexing tunnel), раскройте элементы кластера (unbundle) и отрисуйте номера (индексы) из кластера через Overlay. Можно, конечно, и в предыдущем цикле всё сделать, но так, думаю, понятнее будет. У вас уже пример даже есть, как в цикле рисовать - посмотрите, как прямоугольники рисуются в левом цикле. А вообще, перенесите отрисовку прямоугольников в этот новый For Loop, будет нагляднее, когда одновременно будут отображаться границы области и её номер/индекс.
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

dadreamer писал(а): 20 янв 2021, 22:31 Там, где выделено зелёным, напрашивается ещё один цикл For.2021-01-21_0-24-27.jpgПроиндексируйте розовый массив в цикле (autoindexing tunnel), раскройте элементы кластера (unbundle) и отрисуйте номера (индексы) из кластера через Overlay. Можно, конечно, и в предыдущем цикле всё сделать, но так, думаю, понятнее будет. У вас уже пример даже есть, как в цикле рисовать - посмотрите, как прямоугольники рисуются в левом цикле. А вообще, перенесите отрисовку прямоугольников в этот новый For Loop, будет нагляднее, когда одновременно будут отображаться границы области и её номер/индекс.
Ok! Сегодня уже не успею, буду пробовать завтра.
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Яркость выделенной области

Сообщение AN-G »

благодаря вашей помощи разобрался с данной задачей. Есть вопрос: при определении среднего значения яркости получается, что данное значение будет браться по всей площади прямоугольника, а не только по объекту, входящего в него. в этот прямоугольник может попасть и черный фон, а это сразу скажется на конечном результате. Можно ли с помощью каких-то VI выделить объект по контуру и сделать тоже самое?!
Аватара пользователя
dadreamer

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

Re: Яркость выделенной области

Сообщение dadreamer »

AN-G писал(а): 21 янв 2021, 21:23Есть вопрос: при определении среднего значения яркости получается, что данное значение будет браться по всей площади прямоугольника, а не только по объекту, входящего в него. в этот прямоугольник может попасть и черный фон, а это сразу скажется на конечном результате. Можно ли с помощью каких-то VI выделить объект по контуру и сделать тоже самое?!
В таком случае придётся отказаться от текущего способа определения среднего и использовать предложенный здесь, только немного его допилить. Примерно вот так:
Example_VI_BD.png
Из диаграммы должно быть понятно, что мы здесь применяем простейшую пороговую обработку: усредняются только те пиксели, яркость которых превышает заданную уставку (подбираете сами исходя из желаний или требований). Область вырезаете из исходного изображения с помощью IMAQ ImageToArray VI, задав Optional Rectangle, как писал ранее. Conditional Indexing Tunnel (зелёный значок вопроса под туннелем) появился в :labview: , начиная с 2012 версии. В 2011 этого нет, так что советую вам поставить :labview: посвежее. Или можно через кейсы реализовать, но получится малость велосипедно. Да, выложенная картинка - это сниппет, его можно с диска перетащить на БД и получится готовый код. Также нюанс: если в области вообще нет пикселей с заданной яркостью, то на выходе получится NaN (Not a Number). Что с этим делать, решать вам. :) Можете вывести лог. индикатор с ошибкой или как-то иначе это обработать.
Ответить

Вернуться в «Для чайников»