Какой лучший способ "размазать" изображение программно?
Я возиться с манипуляциями с изображениями, в основном с использованием Python. Сейчас я не слишком беспокоюсь о производительности, так как просто делаю это ради развлечения. До сих пор я мог загружать растровые изображения, объединять их (согласно некоторой функции) и делать ДЕЙСТВИТЕЛЬНО грубый анализ (найти самые яркие / самые темные точки, подобные вещи).
Я хотел бы иметь возможность снимать изображение, генерировать набор контрольных точек (что я могу более или менее сделать сейчас), а затем размазывать изображение, начиная с контрольной точки и двигаясь в определенном направлении. В чем я не уверен, так это в самом процессе размазывания. Какой хороший алгоритм для этого?
5 ответов
Этот вопрос довольно старый, но я недавно заинтересовался этой самой темой, так что, возможно, это может быть полезно для кого-то. Я реализовал кисть 'smudge', используя Imagick для PHP, которая примерно основана на технике смазки, описанной в этой статье. Если вы хотите проверить код, не стесняйтесь взглянуть на проект: Magickpaint
Попробуйте PythonMagick (привязки библиотеки ImageMagick для Python). Если вы не можете найти его в репозиториях своего дистрибутива, загрузите его здесь: http://www.imagemagick.org/download/python/
Он имеет больше функций, чем вы можете потрясти палкой.
Один из методов - создать сетку, в которой перемещаются ваши контрольные точки, а затем использовать методы наложения текстур, чтобы отобразить изображение обратно в искаженную сетку.
Одним из методов будет применение размытия по Гауссу (или другого типа размытия) к каждой точке в области, определенной вашими контрольными точками.
Я могу ручаться за Gaussian Blur, упомянутый выше, он довольно прост в реализации и обеспечивает довольно приличный результат размытия.
Джеймс