Картинка, палитра.

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

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Картинка, палитра.

Сообщение Sergey Ivanov »

Хочу преобразовать картинку а-ля растр>вектор,
Результат которого хотелось бы достичь.
растр в вектор.jpg
но, используя ранее заданную палитру цветов.

Идея в следующем. Открываем изображение. "Берём" пиксель этого изображения и сравниваем его с цветами из палитры. Тот цвет, к которому цвет пикселя ближе всего, заменяем цветом из палитры. Звучит просто, но у меня немного не получается.
Вот исходное изображение:
тестовая.jpg
Палитра такая (расположил горизонтально, чтобы места меньше занимала):
палитра такая.JPG
В итоге получилось вот что:
тестовая палитра.jpg
Но это немного не тот результат, которого я хочу добиться.

Сама программа:
палитра.JPG
:vi: 2009
раскраска.vi
(9.37 КБ) 212 скачиваний
Надеюсь, что кто-нибудь подскажет как можно решить эту задачу.
Спасибо
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
IvanLis

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

Re: Картинка, палитра.

Сообщение IvanLis »

Думаю, что более корректно использовать "евклидову" метрику.
Но результата, изображенного на картинке с девушкой, не получится добиться только трансформацией цветов. Там зрительно видно, что изображение подвергалось доработке, потому что даже контуры не совпадают :wink:

Да и набор цветов маловат. Можно статистический анализ провести и выбрать именно ту палитру, которая минимизирует потери при сокращении количества цветов. Типа такого можно сделать при GIF сжатии.

1.png
paint.vi
lv2010
(17.19 КБ) 210 скачиваний
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Картинка, палитра.

Сообщение Sergey Ivanov »

IvanLis писал(а):Думаю, что более корректно использовать "евклидову" метрику.
Но результата, изображенного на картинке с девушкой, не получится добиться только трансформацией цветов. Там зрительно видно, что изображение подвергалось доработке, потому что даже контуры не совпадают :wink:
Да и набор цветов маловат. Можно статистический анализ провести и выбрать именно ту палитру, которая минимизирует потери при сокращении количества цветов. Типа такого можно сделать при GIF сжатии.
А я даже на контуры не обратил внимание. Картинка скорее для примера.

С GIF попробовать надо будет. Спасибо !
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
alerm

Activity
leader
leader
Сообщения: 682
Зарегистрирован: 02 май 2012, 21:28
Награды: 1
Версия LabVIEW: 20
Благодарил (а): 57 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Картинка, палитра.

Сообщение alerm »

Sergey Ivanov писал(а): А я даже на контуры не обратил внимание.
оставлю это здесь.jpg
:)
ESeid

Автор
advanced
advanced
Сообщения: 150
Зарегистрирован: 30 мар 2011, 22:41
Награды: 1
Версия LabVIEW: 8.2-2013
Контактная информация:

Re: Картинка, палитра.

Сообщение ESeid »

Согласен со сказанным IvanLis, но добавил бы замечание.
В приведенных VI происходит только огрубление цвета, т.е. упрощение палитры. Однако не происходит векторизации, т.е. создания примитивов (дуг, эллипсов, углов). Как следствие - теряется качество картинки без всякого выигрыша. Выигрыш в обьеме конечного фото тоже незначителен. В принципе, можно было бы что-то сотворить, но как это сделать, не привлекая инструментов NI Vision - я не представляю...
Аватара пользователя
IvanLis

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

Re: Картинка, палитра.

Сообщение IvanLis »

ESeid писал(а):Как следствие - теряется качество картинки без всякого выигрыша. Выигрыш в обьеме конечного фото тоже незначителен.
Основное достоинство векторной графики, это изменение размеров без потери качества, а соответственно и объем файла не связан с размерами изображения.

Что касается изменения количество цветов, то выигрыш будет заметен.
Например RGB кодируется 4byte (помимо цветовых компонент добавляется альфа канал, но может не использоваться).
Если перекодировать и сократить палитру до 256 цветов, то получается на пиксель уходит 1byte, немного уйдет места на хранение кодировки палитры, но при больших размерах изображения можно этим пренебречь и считать что размер сократится в 4 раза. Что в принципе нельзя не заметить :wink: .
Но опять это если брать чистое изображение, без последующего сжатия.

Но Сергей решает немного другую задачу (выяснилось в личной переписке), и ему необходимо именно преобразовать палитру к имеющейся. Так что и вопросы ее адаптации тоже снимаются.
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Картинка, палитра.

Сообщение Sergey Ivanov »

Вошкался, вошкался я с этой палитрой, в итоге решил отказаться. Цвета подобрать очень сложно, я бы сказал, что нереально.
Сделал без палитры, но с заданием количества цветов в готовой картинке. Вот что получается:

Исходник:
тестовая.jpg
тестовая.jpg (38 КБ) 9533 просмотра
Из него 10 цветов
тестовая 10.png
тестовая 10.png (17.84 КБ) 9533 просмотра
25 цветов
тестовая 25.png
тестовая 25.png (22.85 КБ) 9533 просмотра
32 цвета
тестовая 32.png
тестовая 32.png (24.45 КБ) 9533 просмотра
Ещё исходник
растр в вектор.jpg
растр в вектор.jpg (32.82 КБ) 9533 просмотра
10 цветов
растр в вектор 10.png
растр в вектор 10.png (11.9 КБ) 9533 просмотра
25 цветов
растр в вектор 25.png
растр в вектор 25.png (16.62 КБ) 9533 просмотра
32 цвета
растр в вектор 32.png
растр в вектор 32.png (17.59 КБ) 9533 просмотра
Программа если кому интересно:
программка.JPG
раскраска.vi
(62.27 КБ) 206 скачиваний
Добро пожаловать на http://rk-stud.ru/
ESeid

Автор
advanced
advanced
Сообщения: 150
Зарегистрирован: 30 мар 2011, 22:41
Награды: 1
Версия LabVIEW: 8.2-2013
Контактная информация:

Re: Картинка, палитра.

Сообщение ESeid »

Sergey Ivanov, забавное решение, неочевидное. Вне зависмости от результата - браво!
Но посмотри, если интересно, что получится, если вместо твоего автомата цвета взять стандарт, скажем, VGA - 16 цветов, или палитру CGA - 256. Вполне пристойные результаты выходят.
Хотя твой механизм, если его доработать, может представлять собой серьезный интерес для задач, завязанных на вейвлет - преобразования изображений...
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Картинка, палитра.

Сообщение Sergey Ivanov »

ESeid, спасибо за отзыв.
ESeid писал(а):Sergey Ivanov, Но посмотри, если интересно, что получится, если вместо твоего автомата цвета взять стандарт, скажем, VGA - 16 цветов, или палитру CGA - 256. Вполне пристойные результаты выходят.
Хотя твой механизм, если его доработать, может представлять собой серьезный интерес для задач, завязанных на вейвлет - преобразования изображений...
конечно интересно. только где это взять ? я на :labview: 7.1 делал. но установлена и 13 версия
Добро пожаловать на http://rk-stud.ru/
ESeid

Автор
advanced
advanced
Сообщения: 150
Зарегистрирован: 30 мар 2011, 22:41
Награды: 1
Версия LabVIEW: 8.2-2013
Контактная информация:

Re: Картинка, палитра.

Сообщение ESeid »

Sergey Ivanov писал(а):ESeid, спасибо за отзыв.
конечно интересно. только где это взять ? я на :labview: 7.1 делал. но установлена и 13 версия
мне для этого пришлось взять из таблиц цветности VGA - палитру и тупо перекодировать по ней. В воскресенье буду на работе - скину и палитру, и перекодировщик, если захочешь. Но я предложил бы тебе построить свой - у тебя нестандартный подход, и наверняка получится инструмент интересней.
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Картинка, палитра.

Сообщение Sergey Ivanov »

конечно хочу. мне интересно. спасибо !
Добро пожаловать на http://rk-stud.ru/
ESeid

Автор
advanced
advanced
Сообщения: 150
Зарегистрирован: 30 мар 2011, 22:41
Награды: 1
Версия LabVIEW: 8.2-2013
Контактная информация:

Re: Картинка, палитра.

Сообщение ESeid »

Вот этот перекодировщик в палитру VGA. Сразу предупреждаю: ни разу не оптимальный и весьма примитивный. Но довольно быстрый и - работает. :wink:
Paint.jpg
Вложения
paint.vi
(46.4 КБ) 183 скачивания
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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