Как построить CIE 1931?

Простейшие вопросы в области инженерной разработки
Ответить
veraldani
interested
interested
Сообщения: 8
Зарегистрирован: 30 окт 2022, 18:49
Версия LabVIEW: 16
Благодарил (а): 1 раз
Контактная информация:

Как построить CIE 1931?

Сообщение veraldani »

Как можно построить цветовую карту CIE 1931 без вставки изображения. Может ли LabView нативно построить радугу в графике?
Artem.spb

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

Re: Как построить CIE 1931?

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

В каком графике?
Отображается всё равно RGB, если знаете формулы перевода, то реально. А так чтобы без Vision сразу работать с пространством CIE не замечал такого
veraldani
interested
interested
Сообщения: 8
Зарегистрирован: 30 окт 2022, 18:49
Версия LabVIEW: 16
Благодарил (а): 1 раз
Контактная информация:

Re: Как построить CIE 1931?

Сообщение veraldani »

Необходимо сделать прибор, который отображал бы Chromaticity diagram. Видел реализации западных коллег, они используют терминал, который заменяет задний фон графика PNG изображение, интересно, возможно ли иным способом сделать такой прибор.
Это изображение Chromaticity diagram https://ibb.co/tQr27Bj
Это изображения некоторых реализаций: https://ibb.co/c8pW6hz ; https://ibb.co/J5yxLPM .
Видео с похожим прибором: https://www.youtube.com/watch?v=OE15LbC ... 0%BE%D0%B2 .
Буду рад любой информации, заранее спасибо!
Последний раз редактировалось veraldani 10 дек 2022, 17:46, всего редактировалось 2 раза.
Artem.spb

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

Re: Как построить CIE 1931?

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

veraldani писал(а): 10 дек 2022, 17:17 Необходимо сделать прибор, который отображал бы Chromaticity diagram. Видел реализации западных коллег, они используют терминал, который заменяет задний фон графика PNG изображение, интересно, возможно ли иным способом сделать такой прибор.
Ну так замените фон, в чём проблема? Я пока не понимаю, что вы хотите сделать? Картинку отобразить - вообще не проблема.
Подложить её на график ,тоже легко, но учитывайте, что вам придётся следить за шкалами. Фон, естественно, не масштабируется вместе с графиком.
cie.png
cie.png (298.75 КБ) 1321 просмотр
Все примеры похожи на обычные изображения, без всяких хитрых приборов
Видео с похожим прибором: https://www.youtube.com/watch?v=OE15LbC ... 0%BE%D0%B2 .
Вот придёт ИванЛис и всё расскажет
Вложения
cie.7z
(394.1 КБ) 28 скачиваний
veraldani
interested
interested
Сообщения: 8
Зарегистрирован: 30 окт 2022, 18:49
Версия LabVIEW: 16
Благодарил (а): 1 раз
Контактная информация:

Re: Как построить CIE 1931?

Сообщение veraldani »

Да, было б интересно узнать реализацию конвертации XYZ в RGB от ИванЛиса, а то в моей конвертации значения RGB могут выходить за пределы [0:255], да и точка белого не находится. А Вам спасибо за ответ!
Последний раз редактировалось veraldani 11 дек 2022, 08:37, всего редактировалось 2 раза.
Аватара пользователя
IvanLis

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

Re: Как построить CIE 1931?

Сообщение IvanLis »

veraldani писал(а): 11 дек 2022, 07:43 в моей конвертации значения RGB могут выходить за пределы [0:255]
Я как раз использовал подложку (готовое изображение), по этому и не вмешивался.
А вот то что RGB могут выходить за пределы [0..255] это настораживает, т.к. противоречит здравому смыслу.
Делал давно (судя по дате 2017 год), по этому ничего не сохранилось, в том числе и в памяти, могу только ссылку на документ дать:
http://railway-transport.ru/books/item/ ... t006.shtml
veraldani
interested
interested
Сообщения: 8
Зарегистрирован: 30 окт 2022, 18:49
Версия LabVIEW: 16
Благодарил (а): 1 раз
Контактная информация:

Как точно в Labview перевести значения XYZ в RGB?

Сообщение veraldani »

Имеется прибор, который строит на графике локус цветовой диаграммы CIE, также у графика есть курсор, который определяет его положение по XYZ (Z находится следующим путем: 1-X-Y), каким образом можно перевести XYZ в RGB? (чтобы при наведении курсора на некоторую часть цветовой диаграммы в ColorBox отображался цвет, соответствующий реальному цвету на цветовой диаграмме?
https://ibb.co/TH4fvsL - Это мой недоделанный прибор.
https://ibb.co/R3qzSqW - Это готовое приложение для ПК, оно определяет по положению курсора соответствующий цвет и его значения RGB. (это приложение я пытаюсь воссоздать в LabView).
Аватара пользователя
IvanLis

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

Re: Как точно в Labview перевести значения XYZ в RGB?

Сообщение IvanLis »

veraldani писал(а): 11 дек 2022, 18:24 у графика есть курсор, который определяет его положение по XYZ (Z находится следующим путем: 1-X-Y)
как то так ...
Untitled 1.vi
lv2015
(9.77 КБ) 27 скачиваний
veraldani писал(а): 11 дек 2022, 18:24 каким образом можно перевести XYZ в RGB
https://stackoverflow.com/questions/434 ... lor-to-rgb
R = 3.2404542*X - 1.5371385*Y - 0.4985314*Z
G = -0.9692660*X + 1.8760108*Y + 0.0415560*Z
B = 0.0556434*X - 0.2040259*Y + 1.0572252*Z
gjlrkflsdf
veraldani писал(а): 11 дек 2022, 18:24 у графика есть курсор, который определяет его положение по XYZ (Z находится следующим путем: 1-X-Y)
как то так ...
3.png
Untitled 1.vi
lv2015
(9.77 КБ) 27 скачиваний
подкладывайте подложку с цветами, делайте ограничения и пересчитывайте в RGB
veraldani
interested
interested
Сообщения: 8
Зарегистрирован: 30 окт 2022, 18:49
Версия LabVIEW: 16
Благодарил (а): 1 раз
Контактная информация:

Re: Как построить CIE 1931?

Сообщение veraldani »

Спасибо за совет, прибор реализовал, но от меня все же требуется реализация по точкам, чтобы LabView внутри локуса строил точки и окрашивал их в цвет, соответствующий их расположению на цветовой диаграмме, а не подстановкой картинки на задний фон. Буду пробовать совместить наработки из нынешнего прибора по переводу XYZ в RGB и что-то с циклами и property node сделать. :dntknw:
veraldani
interested
interested
Сообщения: 8
Зарегистрирован: 30 окт 2022, 18:49
Версия LabVIEW: 16
Благодарил (а): 1 раз
Контактная информация:

Re: Как построить CIE 1931?

Сообщение veraldani »

Доброго времени суток, дорогие читатели и специалисты LabVIEW!
Снова поднимаю вопрос реализации CIE1931 в LabVIEW.
Полноценную рабочую версию прибора, отображающего цветовую диаграмму, а также определяющую цвет(RGB) и координаты цветового пространства (XYZ) на позиции, куда наведен курсор, удалось реализовать. (Прибор расположен в архиве под названием CIE1931byPicture, может быть кому-то пригодится). В данной версии вывод цветового пространства обеспечен за счет изменения заднего плана XYGraph, то есть подстановкой изображения. Подобная реализация, увы, не соответствует заданию моей курсовой работы, о чем мне профессор напомнил на недавней моей презентации. В связи с этим была предпринята попытка альтернативной реализации:
  • На локус (та самая фигура, внутри которой расположено цветовое пространство) был выведен график, состоящий из одной точки, вместо констант для значения X и Y были выведены контроллеры, это сделано с той целью, чтобы вручную, нажимая на контроллеры, можно было изменять расположение точки.
  • Через Property node данная точка окрашивается в цвет, cоответствующий ее расположению на цветовой диаграмме (были использованы предыдущие наработки по переводу xy координат локуса в RGB.
В итоге было создано что-то наподобие подвижного пикселя, отображающего одну точку цветового пространства CIE 1931 в соответствии со своей позицией. Теперь по идее необходимо заполнить весь локус такими "графиками-точками" для получения картинки, вот с этого момента начинается самое интересное. Как заполнить весь локус? Не представляю как можно автоматизировать процесс нанесения множества разных "графиков-точек" окрашенных в необходимый цвет на XY graph. Из-за этого возникла идея хотя бы попробовать реализовать иллюзию множества точек за счет инерционности зрения. Я пробовал отобразить хотя бы одну прямую локуса с помощью быстрого движения пикселя, для этого были введены два курсора синхронизированные по координате Y (Cursor 0, Cursor 2), один расположен на левом ребре локуса, другой на правом. В теории сначала пикселю давались бы координаты курсора, расположенного на левом ребре, затем курсор двигался вправо бы с шагом 0,01 с определенной скоростью (например вправо на +0,01 раз в 100 миллисекунд) до тех пор, пока ее координата по X почти не сравняется с координатой X уже второго курсора, расположенного на правом ребре локуса (while (X координата пикселя < X координата второго курсора)), после достижения этого условия пикселю по X cнова должна присвоится позиция X первого курсора, расположенного на левом ребре локуса, то есть, итогом работы данного алгоритма в теории должна быть cтатичная цветная полоса, образующаяся за счет быстрой смены позиции пикселя и соответственно цвета. А в потенциале, при достаточной вычислительной мощности, можно еще добавить движение снизу вверх по Y, чтобы вместо полос уже и вовсе строить 2D cегментами, но до этого еще далеко. Было предпринято множество попыток (С помощью While loop, For loop, Formula node, создание библиотеки dll), но, к сожалению, это осталось лишь в виде идеи, пиксель не двигается, из-за некоторых конструкций LabVIEW и вовсе намертво переставал отвечать.
Вот такая вот ситуация, не знаю что делать, в LabVIEW работаю 2 месяца, а именно выполнял лабораторные работы, осознаю огромный функционал программы и нехватку опыта, может быть, кто-то знает более рациональную реализацию, вдруг я и вовсе не туда свернул с этой идеей "двигающегося пикселя". На черный день оставил такой вариант, что придется вручную расположить огромное множество точек, дабы хоть что-то было, но я надеюсь этого не случится все же.
Приложил обе версии прибора и необходимые файлы для работы в виде архиве к этому письму.
P.S. У меня LabVIEW 2016.
Вложения
CIE1931.zip
(669.85 КБ) 21 скачивание
Аватара пользователя
IvanLis

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

Re: Как построить CIE 1931?

Сообщение IvanLis »

Если Вы можете по координатам точки вычислить ее цвет, то рисуйте на 2D Picture
Только нужно будет корректно координаты пересчитать, ну или горизонтально отобразить картинку в конце. Т.к. там (0,0) - левый-верхний угол.

За основу взял Вашу функцию, но думаю идея понятна.
И если необходимо, то фигуру при построении ограничивать нужно, это как раз по кривым, которые Вы строите отдельно.
Снимок экрана от 2022-12-19 22-17-11.png
CIE1931byPlot (SubVI).vi
lv2016
(26.13 КБ) 27 скачиваний
Test.vi
lv2016
(12.15 КБ) 26 скачиваний
veraldani
interested
interested
Сообщения: 8
Зарегистрирован: 30 окт 2022, 18:49
Версия LabVIEW: 16
Благодарил (а): 1 раз
Контактная информация:

Re: Как построить CIE 1931?

Сообщение veraldani »

Благодарю Вас! Попробую реализовать.
Ответить

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