Определить яркость пикселей в конкретных точках

Обсуждение вопросов, связанных с обработкой аудио и видео информации
Ответить
uniknown
interested
interested
Сообщения: 2
Зарегистрирован: 24 ноя 2016, 09:44
Версия LabVIEW: 2010
Контактная информация:

Определить яркость пикселей в конкретных точках

Сообщение uniknown »

Здравствуйте!
Подскажите пожалуйста, как можно реализовать идею..
Необходимо определить яркость определенных пикселей изображения
Пиксели располагаются на окружности, которую мы задаем вручную на изображении. Окружность ограничивает исследуемую область рисунка. А точки располагаются на окружности, например, каждые 10 градусов, это наверное прописывается формулой...
т.е. получится 36 точек с найденными координатами, и в этих 36 точках находим яркость пикселей..
sun-1.jpg
Может стоит использовать Vision, там есть функция IMAQ Spoke и аналогичные, но нет вывода координат точек и определения яркости в этих точках
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Определить яркость пикселей в конкретных точках

Сообщение Kosist »

Я бы попробовал так (но для этого нужен Vision тулкит):
1. При помощи инструментов Vision выбираем нужный регион (ROI - region of interest, http://digital.ni.com/public.nsf/allkb/ ... 38006D2C98)
2. Узнаем координаты границ ROI.
3. При помощи функций IMAQ GetColorPixelValue или IMAQ GetPixelValue узнаем RGB и alpha.
4. А вот как рассчитать яркость - не нашел...
Мы делили апельсин - много наших полегло...
Artem.spb

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

Re: Определить яркость пикселей в конкретных точках

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

Можно и без vision обойтись (мы же пользуемся лицензионным софтом :))
Яркость проще всего определить в пространстве HSV, V=value оно же яркость, уже готовый ответ.
Если брать обычный picture, то там цвета представлены в пространстве RGB, дальше несложной математикой (или инструментами vision) находите нужные точки и переводите один цвет в другой.
Если пользоваться vision, то там есть готовый инструмент преобразования цветов RGB-HSV, если руками, то формулы пересчёта можно найти тут
Не исключено, что можно, погуглив, найти готовые решения, но я их не проверял
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

Re: Определить яркость пикселей в конкретных точках

Сообщение zxc_pavel »

С vision, наверное, так можно сделать
Только когда регион выбираете, зажимайте SHIFT, чтобы окружность получилась :)
ну и на кнопку потом
Вложения
value.vi
(36.87 КБ) 229 скачиваний
Аватара пользователя
IvanLis

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

Re: Определить яркость пикселей в конкретных точках

Сообщение IvanLis »

uniknown писал(а):т.е. получится 36 точек с найденными координатами, и в этих 36 точках находим яркость пикселей..
Как то так:
Без имени.png
Untitled 1.vi
lv2010
(19.45 КБ) 253 скачивания
Artem.spb

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

Re: Определить яркость пикселей в конкретных точках

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

интересная идея использовать в качестве яркости масимум компонентов ргб. не думал, что яркость так банально определяется :)
Аватара пользователя
IvanLis

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

Re: Определить яркость пикселей в конкретных точках

Сообщение IvanLis »

Artem.spb писал(а):интересная идея использовать в качестве яркости масимум компонентов ргб. не думал, что яркость так банально определяется :)
На сколько я помню, при преобразовании RGB->HSV, нужно масштабировать в диапазон [0;1].
Т.е. прогнать все составляющие, и только потом выполнить сдвиг, домножить на коэф. пропорциональности.
Но на практике часто за минимум принимают 0, а за максимум 255.
Но я могу ошибаться, так что за истину не ручаюсь.
Artem.spb

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

Re: Определить яркость пикселей в конкретных точках

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

дело не в цифрах 0-1, 0-100%, 0-255, а в самой сути. Погонял ползунок в фотошопе. V=max там, где любая компонента максимальна. Это для меня немного удивительно.
uniknown
interested
interested
Сообщения: 2
Зарегистрирован: 24 ноя 2016, 09:44
Версия LabVIEW: 2010
Контактная информация:

Re: Определить яркость пикселей в конкретных точках

Сообщение uniknown »

zxc_pavel писал(а):С vision, наверное, так можно сделать
Только когда регион выбираете, зажимайте SHIFT, чтобы окружность получилась :)
ну и на кнопку потом
Большое спасибо Вам! А чтобы покрыть большее количество точек - можно ли в области исследуемой части изображения обозначать вручную несколько окружностей и, быть может, задавать им определенные радиусы? Т.е., например, получится 36 точек окружности радиусом R1, затем еще 36 точек радиусом R2,... ..... и 36 точек радиусом R5?

Поэкспериментировала, но получается задавать только продублировав область выделения..

Еще разобралась с выводом получаемых данных в эксель, удобно :)
Аватара пользователя
IvanLis

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

Re: Определить яркость пикселей в конкретных точках

Сообщение IvanLis »

uniknown писал(а):Большое спасибо Вам! А чтобы покрыть большее количество точек - можно ли в области исследуемой части изображения обозначать вручную несколько окружностей и, быть может, задавать им определенные радиусы? Т.е., например, получится 36 точек окружности радиусом R1, затем еще 36 точек радиусом R2,... ..... и 36 точек радиусом R5?

Поэкспериментировала, но получается задавать только продублировав область выделения..

Еще разобралась с выводом получаемых данных в эксель, удобно :)
00.png
Untitled 1.vi
lv2010
(21.66 КБ) 241 скачивание
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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