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

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

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

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

Добавлено: 24 ноя 2016, 11:09
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. А вот как рассчитать яркость - не нашел...

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

Добавлено: 24 ноя 2016, 11:57
Artem.spb
Можно и без vision обойтись (мы же пользуемся лицензионным софтом :))
Яркость проще всего определить в пространстве HSV, V=value оно же яркость, уже готовый ответ.
Если брать обычный picture, то там цвета представлены в пространстве RGB, дальше несложной математикой (или инструментами vision) находите нужные точки и переводите один цвет в другой.
Если пользоваться vision, то там есть готовый инструмент преобразования цветов RGB-HSV, если руками, то формулы пересчёта можно найти тут
Не исключено, что можно, погуглив, найти готовые решения, но я их не проверял

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

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

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

Добавлено: 24 ноя 2016, 15:17
IvanLis
uniknown писал(а):т.е. получится 36 точек с найденными координатами, и в этих 36 точках находим яркость пикселей..
Как то так:
Без имени.png
Untitled 1.vi
lv2010
(19.45 КБ) 254 скачивания

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

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

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

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

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

Добавлено: 25 ноя 2016, 01:20
Artem.spb
дело не в цифрах 0-1, 0-100%, 0-255, а в самой сути. Погонял ползунок в фотошопе. V=max там, где любая компонента максимальна. Это для меня немного удивительно.

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

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

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

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

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

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

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

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