Модераторы: Snowy, Alexeis, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сделать серый цвет темнее 
:(
    Опции темы
Агрох
Дата 9.12.2013, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: нет
Всего: 6



Попробуй мой вариант. Проект прикреплён.

Там на форме два трекбара. Первый отвечает за степень очистки от слишком светлых пикселей, второй за очернение достаточно тёмных. Соответственно при нулях на обоих ничего не изменится, при 255 на отбеливании, почти все пиксели станут белыми (r=255, g=255, b=255), при 255 на очернении все пиксели, кроме белых, будут чёрными (r=0, g=0, b=0).

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

Есть 4 Image, слева оригинал и увеличенный в 5 раз оригинал, справа - обработанное изображение и увеличенное в 5 раз обработанное изображение.

При коэффициентах 64, 191 изображения в bmp состоит только из чёрных и белых пикселей. В jpg немного "мусора" появляется.

Можно поиграть с коэффициентами, может что получится.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Очистка_изображения.zip 83,68 Kb
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Illusion Dolphin
Дата 9.12.2013, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 13
Всего: 63



Код

     temp1_s := inttohex(Image1.Canvas.Pixels[x_pix,y_pix], 6);
      r1 := StrToInt('$' + temp1_s[5] + temp1_s[6]);
      g1 := StrToInt('$' + temp1_s[3] + temp1_s[4]);
      b1 := StrToInt('$' + temp1_s[1] + temp1_s[2]);

      iFactor := 255 - TrackBar1.Position;
      ...
      Image2.Canvas.Pixels[x_pix, y_pix] := r1 + g1*256 + b1*65536;

(facepalm) Чудеса оптимизации


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Агрох
Дата 9.12.2013, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: нет
Всего: 6



Illusion Dolphin, это урезанная версия под конкретную задачу. Уверяю вас, в полной версии всё то, что вам кажется не оптимизированным, использовалось.

Главный вопрос: работает ли?

Это сообщение отредактировал(а) Агрох - 9.12.2013, 16:57
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Akella
Дата 9.12.2013, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 1
Всего: 329



Я не пробовал, ибо уже отдал программу пользователю с кодом, который предоставил Illusion Dolphin. Пока всё хорошо.
PM MAIL   Вверх
Alexeis
Дата 9.12.2013, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(Агрох @  9.12.2013,  12:07 Найти цитируемый пост)
При коэффициентах 64, 191 изображения в bmp состоит только из чёрных и белых пикселей. В jpg немного "мусора" появляется.

  Jpeg не бывает черно-белым. Или 256 оттенков серого или тру колор. Пожимать чертежи жпегом худшее из того что можно придумать. Во-первых сжатие получается хуже чем png, а второе это размытие линий, которое ни разу не облегчает бинаризацию и выделение контуров.

Картинка под увеличением демонстрирует лучше всяких слов.
user posted image

Цитата(Агрох @  9.12.2013,  17:53 Найти цитируемый пост)
Уверяю вас, в полной версии всё то, что вам кажется не оптимизированным, использовалось.

   Кто спорит, что работает. Для картинки 100х20 жить будет. Дело в том, что производительность сего кода примерно раз 500 хуже того что можно было сделать. 



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Агрох
Дата 9.12.2013, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: нет
Всего: 6



Цитата(Alexeis @  9.12.2013,  18:03 Найти цитируемый пост)
 Jpeg не бывает черно-белым. Или 256 оттенков серого или тру колор. Пожимать чертежи жпегом худшее из того что можно придумать. Во-первых сжатие получается хуже чем png, а второе это размытие линий, которое ни разу не облегчает бинаризацию и выделение контуров.


Именно поэтому я написал не чёрно-белым, а состоящим из пикселей чёрного и белого цвета, при этом указал что это только для bmp.

В самой программе работа идёт через Image.Canvas.Pixels[x,y], т.е. обработки именно изображения jpg нету. Просто можно открыть файл jpg, прога его преобразует в bitmap, обрабатывает, а полученный bitmap обратно сохраняет в jpg. Качество открытия/сохранения jpg на совести библиотеки JPEG.
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Агрох
Дата 10.12.2013, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: нет
Всего: 6



Цитата(Alexeis @  9.12.2013,  18:03 Найти цитируемый пост)
Кто спорит, что работает. Для картинки 100х20 жить будет. Дело в том, что производительность сего кода примерно раз 500 хуже того что можно было сделать. 


Есть задача и есть решение. В условии задачи, той которую я ставил перед собой когда это делал, не было добиться максимальной производительности. А её можно добиться разве что используя для решения возможности видеокарты, DirectX или OpenGL.

На всякий случай ещё уточню, что в полной версии работа производилась не с двумя цветами, чёрным и белым (rgb (0,0,0) и (255,255,255)) а со всеми цветами диапазона. Настройка осуществлялась не двумя TrackBara-ами, а восемью, плюс было две опции в RadioGroup. Это на тему лишних переменных в коде и ненужных преобразований.

В то время я слегка увлёкся графикой, в том числе и сам рисовал контурные рисунки карандашом на бумаге. В первую очередь меня интересовала возможность очистки сканов этих самых рисунков от грязи, которая непременно возникала в процессе рисования (многократное стирание неудавшихся линий и рисование по новой) и повышение чёткости линий рисунков, для последующей работы с ними в программах обработки графики. Это было лет 5 назад, когда я ещё толком даже ООП не освоил, и программированием занимался всего около 2-х лет. Естественно код не оптимизирован. Сейчас же я чисто косметические изменения в него внёс.
Повышение контрастности - не выход, т.к. повышается контрастность не только самого рисунка но и артефактов. Вручную удалять всё это было лень.
Высокая производительность не нужна была, т.к. максимум мне надо было обработать 1-2 рисунка в день. Главное, чтобы работало. И оно работало.
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.