|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.04.2013, 13:01 | #1 |
Регистрация: 14.12.2012
Сообщений: 6
|
Уменьшение количества цветов в изображении
Здравствуйте! Пишу программу, которая преобразовывает изображение в схему для вышивки. Для этого изображение загружается в программу, разбивается на определенное количество равных квадратных ячеек (пользователь вводит количество необходимых ячеек по ширине изображения, и относительно этого программа разбивает все изображение). Затем в каждой ячейке определяется основной цвет, так чтобы в ячейке был только один цвет, результат выводится на экран. Дальше по задумке необходимо ограничить количество цветов на изображении (необходимое кол-во вводит пользователь) Вот тут то и возникает проблема: Если, скажем, пишем 3 цвета то это не совсем 3 цвета. У нас система RGB, и вот каждый из этих цветов делится на три. т.е. в реальности 3 - это 9. Как-то так.
Работаю в Borland C++ Builder У меня это записано таким образом: Код:
Последний раз редактировалось Stilet; 17.04.2013 в 20:10. |
17.04.2013, 19:57 | #2 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Цвет характеризуется спектром. Одним числом охарактеризовать цвет невозможно. Но человеческий орган зрения (глаз) имеет только три типа цветочувствительных элементов. Поэтому при формировании изображения для восприятия человеческим глазом применяют существенно упрощенную модель - цвет представляется вектором в 3-мерном цветовом пространстве. Поэтому и принято представлять цвет тремя числами, которые означают интенсивность красной, зеленой и синей составляющих. Но все три составляющих - один цвет, один вектор. Поэтому если Вам нужно использовать именно 3 цвета, то это и будет три цвета и не больше. Вопрос уменьшения количества цветов достаточно хорошо проработан, т.к. ограниченность ресурсов компьютеров недалекого прошлого требовала решения как раз этой задачи - уменьшение количества цветов до такого, которое позволяет видеокарта. В случае цветного изображения, как правило, максимально возможное количество цветов составляло 4, 16 или 256. Используемая трехмерная дискретная модель цвета, используемая сегодня, насчитывает 16777216 цветов. Вот и решалась задача, как сократить количество цветов с более 16 млн до 4, 16 или 256. Редуцирование используемого количества цветов требует создания палитры. Палитра - это полный список используемых цветов (векторов). Способы задания палитры могут быть различными, в основном их выбор определяется двумя факторами: - может ли палитра включать все цвета либо их следует выбирать из ограниченного набора (частный случай - фиксированная палитра, которую нельзя менять), - какой мы используем алгоритм для приведения цветов картинки к выбранной палитре. Т.к. у Вас задача вышивания, думаю, это как раз случай, когда количество цветов ограничено (например, есть нитки только определенных цветов). Наверное, из них и нужно выбирать цвета палитры. |
|
19.05.2015, 23:40 | #3 |
Новичок
Джуниор
Регистрация: 23.12.2013
Сообщений: 2
|
Скиньте исходник пожалуйста
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит | lesha18 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 26.02.2013 16:54 |
Уменьшение размера картинки | Дунганчик | JavaScript, Ajax | 1 | 11.01.2013 14:17 |
Уменьшение размера изображения на php уменьшение качества картинки пример class php jpeg gif png | xzxz | PHP | 2 | 19.11.2012 11:11 |
уменьшение числа | undead92 | Общие вопросы Delphi | 2 | 17.04.2012 12:05 |
Уменьшение кол-ва цветов (Мозаика) | mutabor | Общие вопросы Delphi | 3 | 29.01.2010 15:32 |