![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 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! |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 13 Всего: 63 |
(facepalm) Чудеса оптимизации -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Illusion Dolphin, это урезанная версия под конкретную задачу. Уверяю вас, в полной версии всё то, что вам кажется не оптимизированным, использовалось.
Главный вопрос: работает ли? Это сообщение отредактировал(а) Агрох - 9.12.2013, 16:57 --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Я не пробовал, ибо уже отдал программу пользователю с кодом, который предоставил Illusion Dolphin. Пока всё хорошо.
|
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Jpeg не бывает черно-белым. Или 256 оттенков серого или тру колор. Пожимать чертежи жпегом худшее из того что можно придумать. Во-первых сжатие получается хуже чем png, а второе это размытие линий, которое ни разу не облегчает бинаризацию и выделение контуров. Картинка под увеличением демонстрирует лучше всяких слов. ![]()
Кто спорит, что работает. Для картинки 100х20 жить будет. Дело в том, что производительность сего кода примерно раз 500 хуже того что можно было сделать. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Именно поэтому я написал не чёрно-белым, а состоящим из пикселей чёрного и белого цвета, при этом указал что это только для bmp. В самой программе работа идёт через Image.Canvas.Pixels[x,y], т.е. обработки именно изображения jpg нету. Просто можно открыть файл jpg, прога его преобразует в bitmap, обрабатывает, а полученный bitmap обратно сохраняет в jpg. Качество открытия/сохранения jpg на совести библиотеки JPEG. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: нет Всего: 6 |
Есть задача и есть решение. В условии задачи, той которую я ставил перед собой когда это делал, не было добиться максимальной производительности. А её можно добиться разве что используя для решения возможности видеокарты, DirectX или OpenGL. На всякий случай ещё уточню, что в полной версии работа производилась не с двумя цветами, чёрным и белым (rgb (0,0,0) и (255,255,255)) а со всеми цветами диапазона. Настройка осуществлялась не двумя TrackBara-ами, а восемью, плюс было две опции в RadioGroup. Это на тему лишних переменных в коде и ненужных преобразований. В то время я слегка увлёкся графикой, в том числе и сам рисовал контурные рисунки карандашом на бумаге. В первую очередь меня интересовала возможность очистки сканов этих самых рисунков от грязи, которая непременно возникала в процессе рисования (многократное стирание неудавшихся линий и рисование по новой) и повышение чёткости линий рисунков, для последующей работы с ними в программах обработки графики. Это было лет 5 назад, когда я ещё толком даже ООП не освоил, и программированием занимался всего около 2-х лет. Естественно код не оптимизирован. Сейчас же я чисто косметические изменения в него внёс. Повышение контрастности - не выход, т.к. повышается контрастность не только самого рисунка но и артефактов. Вручную удалять всё это было лень. Высокая производительность не нужна была, т.к. максимум мне надо было обработать 1-2 рисунка в день. Главное, чтобы работало. И оно работало. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |