Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2014, 21:30   #1
antiteror
Новичок
Джуниор
 
Регистрация: 19.10.2014
Сообщений: 3
По умолчанию попиксельная обработка изображения

здравствуйте. Столкнулся с такой проблемой необходимо написать программу которая будет улучшать качество изображения в зависимости от того какой фильтр будут применять. Для начала была создана топорная версия на delphi для обработки маленьких изображений методом Цикл в цикле. Для маленьких картинок она работает но медленно.Скажите пожалуйста каким алгоритмом и на каком языке языке это проще и эффективней организовать. Спасибо
antiteror вне форума Ответить с цитированием
Старый 19.10.2014, 21:51   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Для Delphi есть библиотека Graphics32. Для компонента картинки можно применить чуть более чем дохрена встроенных алгоритмов сглаживания. Можно писать свои фильтры, если внезапно не найдете нужного среди кучи реализаций всех существующих.

В JVCL, JCL есть метод обработки картинки с применение нескольких алгоритмов оптимизации изображения с изменением размера картинки.

Последний раз редактировалось Человек_Борща; 19.10.2014 в 22:16.
Человек_Борща вне форума Ответить с цитированием
Старый 19.10.2014, 22:14   #3
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

Быстро будет работать если исходя из цветности TBitmap (и соответствующего количества бит на точку) работать с его пикселями напрямую в памяти, а не через дельфийские приспособы. А язык любой, можно и дельфи.
blackstrip вне форума Ответить с цитированием
Старый 19.10.2014, 22:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кажись можно воспользоваться функой CreateDIBitmap() для прямого доступа к э-э-э... памяти, где лежит RGB карта рисунка. Вот тогда дело пойдет быстро. Правда памяти скушаться должно много.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.10.2014, 22:25   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Я через DIB как-то делал скриншоты игр на 7ке... когда другие Aero обойти не могли.
Правда картинки были 50 мб - минимум.
Человек_Борща вне форума Ответить с цитированием
Старый 19.10.2014, 22:34   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Правда картинки были 50 мб - минимум.
Во во... И не удивительно. Да по-моему фотошоп так и работает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2014, 01:37   #7
antiteror
Новичок
Джуниор
 
Регистрация: 19.10.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Я через DIB как-то делал скриншоты игр на 7ке... когда другие Aero обойти не могли.
Правда картинки были 50 мб - минимум.
ну у меня картинки будут 5 мб примерно. стоит тогда DIB использовать??? а где вообще про DIB прочитать можно??

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
В JVCL, JCL есть метод обработки картинки с применение нескольких алгоритмов оптимизации изображения с изменением размера картинки.
есть какие то библиотечные методы или примеры реализованные??

знаю вот что у C# есть распараллеливание задач для циклов paraller.for. Какие еще существуют в других языках ускорители обработок матрицы к примеру и вообще программные ускорители.

Последний раз редактировалось Stilet; 20.10.2014 в 07:14.
antiteror вне форума Ответить с цитированием
Старый 20.10.2014, 01:53   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
есть какие то библиотечные методы или примеры реализованные??
Демки Graphics32 посмотрите.

Цитата:
а где вообще про DIB прочитать можно??
На MSDN:http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

Цитата:
знаю вот что у C# есть распараллеливание задач для циклов paraller.for. Какие еще существуют в других языках ускорители обработок матрицы к примеру и вообще программные ускорители.
Думаю вряд ли вам понадобится писать свой собственный фильтр. Возможностей той же GR32 за глаза.
Человек_Борща вне форума Ответить с цитированием
Старый 20.10.2014, 02:04   #9
antiteror
Новичок
Джуниор
 
Регистрация: 19.10.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Возможностей той же GR32 за глаза.
а стоит вообще пробовать эту проблему именно на delphi решать (критерий быстродействие)? может стоит в другой среде реализовывать?
antiteror вне форума Ответить с цитированием
Старый 20.10.2014, 02:14   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
а стоит вообще пробовать эту проблему именно на delphi решать (критерий быстродействие)? может стоит в другой среде реализовывать?
Ну вот и выясните это
Компонент поставить, настроить свойства, прописать картинку.. скомпилировать. Быть может придется код написать, чтоб картинки из папки менялись и замерить сколько же оно времени убивает на обработку 1 пикчи.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Попиксельная обработка изображения shushlev Мультимедиа в Delphi 17 15.05.2013 20:27
Обработка изображения в Java nickolight Общие вопросы по Java, Java SE, Kotlin 0 12.05.2013 21:36
Обработка изображения Chester751 Мультимедиа в Delphi 1 12.04.2013 23:19
Попиксельная обработка изображения fasty C++ Builder 9 17.09.2012 10:16
Обработка изображения Hollander Мультимедиа в Delphi 6 10.03.2008 14:21