我想在图像的特定区域应用凸起效果,例如使眼睛变大或使用 python 的 Photoshop 液化滤镜的膨胀效果。像这样:
this帖子在整个图像上完美实现了凸起效果,但是如何在Python中部分应用它?
有这样的事吗?
from skimage.transform import warp
im = imread('lena.jpg')
def transform(xy):
cx, cy = 110, 110 #.5, .5
r = np.sqrt((xy[:,0] - cx)**2 + (xy[:,1] - cy)**2) # to polar coordinates
a = np.arctan2(xy[:,1] - cx, xy[:,0] - cy)
rn = r**1.75 / 50 # bulge
xy[:,0] = (rn*np.cos(a) + cy)
xy[:,1] = (rn*np.sin(a) + cx)
return xy
im = imread('lena.jpg')
im_bulge = warp(im, transform)
plt.imshow(np.hstack((im, im_bulge)))