Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Общие вопросы по программированию, компьютерным наукам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 13.02.2019, 18:13   #11
tae1980
Участник клуба
 
Регистрация: 02.02.2009
Адрес: г. Саратов
Сообщений: 803
Репутация: 22
По умолчанию

Цитата:
Сообщение от kvitaliy Посмотреть сообщение
Ну ясно.
Может сможешь, что посоветовать.

Всё таки не могу успокоиться, всё кажется, что можно выжать больше из 16 цветов.
Был метод "По полубайту. Самый частые цвета", для каждого полубайта находим самым частый цвет и используем его, как один из двух цветов сравниваем с крайними цветами (для левого с левым, для правого с правым), если они встречаются чаще, берем их.

Добавил "По полубайту. Светлый и темный цвет" получились чуть лучше (5-10%), чем аналогичный метод для байта. В нем для каждого полубайта находим "среднюю серость" цветов (сложить серости всех цветов, поделить на их количество), а так же самый темный и светлый цвет в полубайте. Далее определяем по средней серости какой полубайт темнее и их него берем самый темный цвет, а из второго полубайта самый светлый.

Но у обоих есть свои недостатки. В попытка создать гибрид сделал метод "По полубайту. Ближайшие к среднему." В нем для каждого полубайта находим "среднюю серость" цветов , и выбираем ближайший к нему. Далее сравниваем с крайними цветами (для левого с левым, для правого с правым), если они встречаются чаще, берем их. Без этой операции ни куда, получается вообще ужас.

Вот что получилось. Цифрами обозначены проблемные места.
1. Линейность на небе.
2. Плавность линий и переходов.
3. Проявление не главного цвета, но самого яркого. Есть подобные места с темными цветами.
4. Размазанность края здания и опоры.
5. Сочетание колон и деревьев.
6. Люди о основания здания.
7. Просветы между деревьями.

У "По полубайту. Самый частые цвета" лучшая цветопередача, плавные цветопереходы и линии, но падает детализация, узкие вертикальные линии размываются.

У "По полубайту. Светлый и темный цвет" максимальная детализация, но страдает цветопередача (до резкости в глазах) и плавность перехода цветов, линии очень плавные.
Нужно подумать об выборке цвета.

У гибрида "По полубайту. Ближайшие к среднему". Высокая степень размытости изображения, да же больше чем у первого метода. Но лучше цветопередача чем у второго. Не могу сказать, что линейность изображения выше, скорее она более заметна.
Его проблемы в выборе крайних цветов. Но без этого результат ещё хуже, так как не сохраняются переходы цвета.

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

__________________
С уважением, Алексей.

Последний раз редактировалось tae1980; 13.02.2019 в 18:17.
tae1980 вне форума   Ответить с цитированием
Старый 14.02.2019, 05:54   #12
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Адрес: DS:SI
Сообщений: 116
Репутация: 256
По умолчанию

Судя по палитре 332, самый неудачный вариант это картинки неба. В общем синий (8 бит на канал) цвет даже на графических мониторах плохо отображается, а тут вообще урезали до двух бит.

Небо отвратительно выглядит.
Может лучше искать картинки с преобладанием красных и зелёных оттенков?




Все картинки в формате 332. Вот палитра:

У Вас такая же вышла?
jillitil вне форума   Ответить с цитированием
Старый 14.02.2019, 10:49   #13
tae1980
Участник клуба
 
Регистрация: 02.02.2009
Адрес: г. Саратов
Сообщений: 803
Репутация: 22
По умолчанию

Цитата:
Сообщение от jillitil Посмотреть сообщение
Судя по палитре 332, самый неудачный вариант это картинки неба. В общем синий (8 бит на канал) цвет даже на графических мониторах плохо отображается, а тут вообще урезали до двух бит.
У Вас такая же вышла?
Палитра похожа. Но тут не всё немного сложнее.
Картинка выбрана из-за того что на ней есть большинство элементов (небо, деревья, мелкие детали, переливы) работу с которыми нужно оттестировать. Главной проблемой являться ограничение двух цветов на 8 точек. Решение работать с изображениями в 16 цветов не идеально, с одной сторны оно снимает большой уровень проблем, с другой потеря в гибкости. Скорее всего используя алгоритмы распределения ошибки можно добиться большего. Но это уже следующий этап работ, пока хочу выжать всё возможное из 16 цветов.
Сегодня ночью сделал "финт хвостом". Подготовил новый метод обработки изображения "По полубайтам. Частые цвета с учетом серости". Это гибрид двух методов описанных выше, он уравновешивает их недостатки, хотя не ликвидируют полностью. Если в байте до трёх цветов применяться метод с самыми частыми цветами. Если более трех то значения бит графики рассчитываться по самому темному и светлому (по сути получаем ч.б. изображение), а цвета накладываться самые частые. При таком подходе видно больше деталей, чем в методе с "частым цветами", но меньше чем в методе "самый темный и светлый цвет", а цвета искажаться меньше чем в методе с делением по яркости, но больше чем в методе с нахождением самых частых цветов. Так же в ряде мест может появиться дополнительная линейность, отсутствующая в методе по яркости. Несмотря на, это итоговый результат получается весьма сбалансированный. Привожу пример.

С палитрой 332rgb, то же не всё понятно. Везде написано, что синяя составляющая имеет значение 0-3. Но вот в одной статье нашел такое:
Цитата:
Условно байт состоит из 3-х частей, которые соотв. Цветам Green – зелёный, Red – красный и Blue –синий. Так как синяя компонента представлена всего 2-я битами, то считается, что у нее есть младший бит, но он равен всегда 0. Т.е. если мы задаем значение синей компоненты в 11 (т.е. десятичное 3), то для получения белого цвета зелёная и красная компоненты должны быть заданы в значение 110 (десятичное 6). И байт палитры соответствующий белому цвету будет выглядеть как 11011011.
Выходит, что синяя составляющая не 0-3, а 0,2,4,6. Статья касается Профи, я связался с автором, он сказал, что писал это на основе анализа схемы аппаратной части. Справедливо ли это во всех случаях, не знаю. Обращаю внимание на часть небо, выделил кружком. Видно, что цвета перенеслись не точно. Где косяк нужно ещё разбираться, но перевод осуществлялся из ход из того, что синяя составляющая имеет значение 0-3. К сожалению, не смотря на то что цвета приведены к палитре 332Rgb, они храняться в палитре 24bpp, и нужно использовать формулы перевода. Я использую вот эту для перевода 24bpp в 8bpp. То есть для получения итогового изображения цвет из 24bpp был переведен в 8bpp, а потом обратно. В теории потерь быть не должно, а они есть.
Код:

#rrr=format(#rrr*(7/255),,0); #ggg=format(#ggg*(7/255),,0); #bbb=format(#bbb*(3/255),,0) /* 24bpp в 8bpp */
#rrr=format(#rrr*(255/7),,0); #ggg=format(#ggg*(255/7),,0); #bbb=format(#bbb*(255/3),,0) /* 8bpp в 24bpp */

Как изменить перевод синей составлявшей если принят, что на может иметь значения 0,2,4,6, хрен его знает.
Так же есть вероятность, что проблема возникает только при обратном переводе в BMP (для вывода на экран), нужно проверить на реальном железе.
Возможно! это как раз проблема высвечивания не главных цветов. Но как проверить это я пока не понял.
__________________
С уважением, Алексей.

Последний раз редактировалось tae1980; 14.02.2019 в 11:31.
tae1980 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит lesha18 Паскаль 1 26.02.2013 16:54
ImageMagick. Конвертирование pdf в jpg. JuniorProger PHP 0 23.09.2012 01:22
ImageMagick и формат DDS J-Max PHP 1 26.08.2012 14:01
Вопрос по ImageMagick ALьT PHP 0 09.11.2011 15:00
Помогите с ImageMagick SENTINEL Мультимедиа в Delphi 1 01.02.2009 07:55


23:45.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru