【发布时间】:2019-07-23 05:11:13
【问题描述】:
我的本地机器上有一个代码需要 45 秒(这是一个很好的 i7 配置)。我目前正在使用魔杖,但如果您有其他想法,我愿意向其他图书馆开放。这段代码的目标是模糊一张图片的中间并逐渐模糊直到边框:
from wand.image import Image, CHANNELS
from wand.api import library
from wand.display import display
from wand.drawing import Drawing
from wand.color import Color
with Image(filename='paysage.jpg') as img:
points = {'black': (0, img.height), 'white': (0, 0)}
img.sparse_color('bilinear', points)
img.function('polynomial', [3, -3, 1])
img.negate()
img.save(filename='filtre.jpg')
with Image(filename='paysage.jpg') as src:
with Image(filename='filtre.jpg') as dst:
src.composite(dst, operator='blur', arguments='20')
src.save(filename='paysagefiltered.jpg')
display(src)
感谢您的帮助:)
【问题讨论】:
-
试试pillow-simd或opencv或两者的组合python-pillow.org/pillow-perf
-
谢谢,您认为使用pillow-simd 可以做到这一点??
-
谢谢,但这不是我想要的 :( 在你的例子中,一部分模糊图像粘贴在图片上,我想要一个真正的渐变
-
嗯,这是一个如何应用模糊蒙版的示例。您可以很容易地想出一个解决方案,例如: 1 - 创建 10 个单独的模糊蒙版,长度 = orig_im.length, height = orig_im.height / 20,模糊半径随着每次迭代而变高。 2 - 自上而下堆叠模糊层 3 - 在 y 方向镜像堆栈 将模糊蒙版应用于原始 im。这可能不是最好的方法,但它会起作用:)
标签: python optimization wand