概述
效果展示
原始图片:
实现效果:
-
nperiod = 1, npic = 10
-
nperiod = 10, npic = 30
原理
原理很简单,就是在竖直方向上给图片加一个正弦曲线的偏移量
d
i
s
p
l
a
c
e
m
e
n
t
=
H
3
sin
(
2
π
(
x
W
/
nperiod
+
ϕ
)
)
displacement = frac{H}{3} sin (2pi (frac{x}{W/text{nperiod}}+phi))
displacement=3Hsin(2π(W/nperiodx+ϕ))
其中
W
,
H
W, H
W,H 是原始图片的宽和高,
ϕ
phi
ϕ 表示相位
T = img.shape[1]
A = img.shape[0] // 3
displace = int(A*np.sin(2*np.pi*(j/(T/nperiod) + phi)))
主要调控的参数为:
- nperiod: 正弦曲线在图片内的周期数
- npic : gif 动图中图片的张数
img = cv2.imread('logo.jpg')
img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR)
nperiod = 10
npic = 30
for phi in range(npic):
phi/= npic # 每幅图片的相位偏移
I = np.ones_like(img) * img[0,0]
for j in range(T):
displace = int(A*np.sin(2*np.pi*(j/(T/nperiod) + phi)))
if displace > 0:
I[:img.shape[0]-displace,j] = img[displace-img.shape[0]:,j]
elif displace < 0:
I[-displace:,j] = img[:displace+img.shape[0],j]
else:
I[:,j] = img[:,j]
plt.imsave('pic.{:.3f}.jpg'.format(phi), I)
每一帧的图片如下:
最后配合 ps 生成动图 : )
最后
以上就是昏睡哑铃为你收集整理的python 舞动的文字(一)效果展示原理的全部内容,希望文章能够帮你解决python 舞动的文字(一)效果展示原理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复