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

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

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

Postby uniknown on 24 Nov 2016, 09:55

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

Может стоит использовать Vision, там есть функция IMAQ Spoke и аналогичные, но нет вывода координат точек и определения яркости в этих точках
uniknown
interested
interested
 
Posts: 2
Joined: 24 Nov 2016, 09:44
LabVIEW Version: 2010
Karma: 0

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

Postby Kosist on 24 Nov 2016, 11:09

Я бы попробовал так (но для этого нужен 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. А вот как рассчитать яркость - не нашел...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 949
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 266
CLAD I/O VIP students

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

Postby Artem.spb on 24 Nov 2016, 11:57

Можно и без vision обойтись (мы же пользуемся лицензионным софтом :))
Яркость проще всего определить в пространстве HSV, V=value оно же яркость, уже готовый ответ.
Если брать обычный picture, то там цвета представлены в пространстве RGB, дальше несложной математикой (или инструментами vision) находите нужные точки и переводите один цвет в другой.
Если пользоваться vision, то там есть готовый инструмент преобразования цветов RGB-HSV, если руками, то формулы пересчёта можно найти тут
Не исключено, что можно, погуглив, найти готовые решения, но я их не проверял
Artem.spb
expert
expert
 
Posts: 1604
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 261
CLD hardware I/O VIP freelance

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

Postby zxc_pavel on 24 Nov 2016, 12:24

С vision, наверное, так можно сделать
Только когда регион выбираете, зажимайте SHIFT, чтобы окружность получилась :)
ну и на кнопку потом
Attachments
value.vi
(36.87 KiB) Downloaded 101 times
zxc_pavel
assistant
assistant
 
Posts: 111
Joined: 02 Jun 2016, 12:07
LabVIEW Version: 14
Karma: 74

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

Postby IvanLis on 24 Nov 2016, 15:17

uniknown wrote:т.е. получится 36 точек с найденными координатами, и в этих 36 точках находим яркость пикселей..

Как то так:
Без имени.png
Untitled 1.vi
lv2010
(19.45 KiB) Downloaded 97 times
User avatar
IvanLis
professor
professor
 
Posts: 4802
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 762
hardware VIP bloggers teachers

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

Postby Artem.spb on 24 Nov 2016, 19:28

интересная идея использовать в качестве яркости масимум компонентов ргб. не думал, что яркость так банально определяется :)
Artem.spb
expert
expert
 
Posts: 1604
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 261
CLD hardware I/O VIP freelance

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

Postby IvanLis on 24 Nov 2016, 20:24

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


На сколько я помню, при преобразовании RGB->HSV, нужно масштабировать в диапазон [0;1].
Т.е. прогнать все составляющие, и только потом выполнить сдвиг, домножить на коэф. пропорциональности.
Но на практике часто за минимум принимают 0, а за максимум 255.
Но я могу ошибаться, так что за истину не ручаюсь.
User avatar
IvanLis
professor
professor
 
Posts: 4802
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 762
hardware VIP bloggers teachers

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

Postby Artem.spb on 25 Nov 2016, 01:20

дело не в цифрах 0-1, 0-100%, 0-255, а в самой сути. Погонял ползунок в фотошопе. V=max там, где любая компонента максимальна. Это для меня немного удивительно.
Artem.spb
expert
expert
 
Posts: 1604
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 261
CLD hardware I/O VIP freelance

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

Postby uniknown on 25 Nov 2016, 08:47

zxc_pavel wrote:С vision, наверное, так можно сделать
Только когда регион выбираете, зажимайте SHIFT, чтобы окружность получилась :)
ну и на кнопку потом


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

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

Еще разобралась с выводом получаемых данных в эксель, удобно :)
uniknown
interested
interested
 
Posts: 2
Joined: 24 Nov 2016, 09:44
LabVIEW Version: 2010
Karma: 0

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

Postby IvanLis on 25 Nov 2016, 18:37

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

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

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

00.png
Untitled 1.vi
lv2010
(21.66 KiB) Downloaded 98 times
User avatar
IvanLis
professor
professor
 
Posts: 4802
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 762
hardware VIP bloggers teachers


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

Who is online

Users browsing this forum: No registered users and 2 guests

cron