python中的部分图像凸起效果

问题描述 投票:0回答:1

我想在图像的特定区域应用凸起效果,例如使眼睛变大或使用 python 的 Photoshop 液化滤镜的膨胀效果。像这样:

https://imgur.com/nBswbO2

this帖子在整个图像上完美实现了凸起效果,但是如何在Python中部分应用它?

python opencv image-processing graphics computer-vision
1个回答
0
投票

有这样的事吗?

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)))

© www.soinside.com 2019 - 2024. All rights reserved.