Алгоритмы обработки изображений

Здесь можно найти готовые «кирпичики» — части кода, пригодные для построения более крупных проектов, а также решения различных типовых и не очень задач на VB.

Модератор: Brickgroup

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Качественный ресайзинг изображений

Сообщение Mikle » 02.12.2008 (Вт) 9:52

Предлагаю простую процедуру, которая переносит данные из одного двумерного Long массива в другой. При этом размеры массивов могут различаться, происходит билинейная интерполяция. Происходит довольно качественное и быстрое преобразование картинки. Функция RGBResize и пример ее использования:

Правка: Была небольшая ошибка, получалась картинка на пиксель меньше, чем нужно. Устранил.
Вложения
Resize.rar
(40.24 Кб) Скачиваний: 776

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Фильтр блур.

Сообщение Mikle » 17.12.2008 (Ср) 15:40

Блур. При одном проходе похож на фотошоповский фильтр "размытие при расфокусировке камеры", при двойном на блур по Гауссу. Можно включать-выключать опцию "Tile" - размытие с учетом противоположной стороны, применяется для текстур. Модуль с функцией и пример использования:
Вложения
Blur.rar
(72.55 Кб) Скачиваний: 1047

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Нерекурсивная заливка.

Сообщение Mikle » 29.01.2009 (Чт) 16:55

Быстрая заливка однотонной области изображения каким-либо цветом. Не применялась рекурсия, за счет этого быстродействие алгоритма значительно выше, кроме того рекурсия сильно расходует стэк, и на крупных изображениях получается переполнение стэка.
Вложения
Fill.rar
(24.44 Кб) Скачиваний: 633

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Фильтр "Линогравюра"

Сообщение Mikle » 02.02.2009 (Пн) 10:41

Фильтр "Линогравюра". Три параметра - "Min", соответствует фотошоповскому "Сглаживание" (или "Смягчение"), "Offset" - соответствует фотошоповскому "Затемнение", и "Max" - в фотошопе аналога нет, а зря...
Вложения
LGrav.rar
(104.04 Кб) Скачиваний: 665
Последний раз редактировалось Mikle 24.04.2009 (Пт) 10:22, всего редактировалось 1 раз.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Алгоритмы обработки изображений

Сообщение Debugger » 02.02.2009 (Пн) 15:40

Если закрыть твою программу другим окном, а потом посмотреть на картинку - будет не результат фильтра, а исходное изображение. Проверяй событие Paint.
При значениях 5 7 0 появляются странные полосы. Не знаю, с чем это связано - с картинкой или с фильтром.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Алгоритмы обработки изображений

Сообщение Хакер » 02.02.2009 (Пн) 19:16

Предлагаю перенести тему в раздел "Алгоритмы//Графика", разбить её там на несколько тем (по каждому фильтру).

А иначе "выкладки" новывых фильтров, комментарии и вопросы по поводу прошлых фильтров и ответы на эти вопросы спутаются и будет не очень хорошо.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Алгоритмы обработки изображений

Сообщение Mikle » 02.02.2009 (Пн) 20:26

Хакер
Я не против. Только дать темам названия, показывающие, что это единая серия - "Алгоритмы обработки изображений. Блур", "Алгоритмы обработки изображений. Ресайз" и т. д.
Debugger
Это же не утилита, а всего лишь демонстрация алгоритма, чтобы пользователь мог сам подключить модуль с эффектом.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Вращение с антиалиазингом и без

Сообщение Mikle » 06.01.2010 (Ср) 15:49

Вращение:
Правка - добавил второй вариант.
Вложения
RotAA.zip
Первоначальный вариант на Floating Point
(30.54 Кб) Скачиваний: 606
RotAAInt.zip
Ускоренный вариант на Fixed Point
(30.76 Кб) Скачиваний: 633


Вернуться в Кирпичный завод

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList