Какой лучший способ "размазать" изображение программно?

Я возиться с манипуляциями с изображениями, в основном с использованием Python. Сейчас я не слишком беспокоюсь о производительности, так как просто делаю это ради развлечения. До сих пор я мог загружать растровые изображения, объединять их (согласно некоторой функции) и делать ДЕЙСТВИТЕЛЬНО грубый анализ (найти самые яркие / самые темные точки, подобные вещи).

Я хотел бы иметь возможность снимать изображение, генерировать набор контрольных точек (что я могу более или менее сделать сейчас), а затем размазывать изображение, начиная с контрольной точки и двигаясь в определенном направлении. В чем я не уверен, так это в самом процессе размазывания. Какой хороший алгоритм для этого?

5 ответов

Этот вопрос довольно старый, но я недавно заинтересовался этой самой темой, так что, возможно, это может быть полезно для кого-то. Я реализовал кисть 'smudge', используя Imagick для PHP, которая примерно основана на технике смазки, описанной в этой статье. Если вы хотите проверить код, не стесняйтесь взглянуть на проект: Magickpaint

Попробуйте PythonMagick (привязки библиотеки ImageMagick для Python). Если вы не можете найти его в репозиториях своего дистрибутива, загрузите его здесь: http://www.imagemagick.org/download/python/

Он имеет больше функций, чем вы можете потрясти палкой.

Один из методов - создать сетку, в которой перемещаются ваши контрольные точки, а затем использовать методы наложения текстур, чтобы отобразить изображение обратно в искаженную сетку.

Одним из методов будет применение размытия по Гауссу (или другого типа размытия) к каждой точке в области, определенной вашими контрольными точками.

Я могу ручаться за Gaussian Blur, упомянутый выше, он довольно прост в реализации и обеспечивает довольно приличный результат размытия.

Джеймс

Другие вопросы по тегам