π§ ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π³ΠΈΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python: ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ Π³Π°ΠΉΠ΄
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΈΡΠΊΡ Π² Python, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ imageio. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import imageio
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
images = ['image1.png', 'image2.png', 'image3.png']
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡΠΊΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
imageio.mimsave('animation.gif', [imageio.imread(image) for image in images], duration=0.5)
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ 'image1.png', 'image2.png' ΠΈ 'image3.png'. ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ mimsave ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ imageio ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡΠΊΠΈ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ 'animation.gif'.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π³ΠΈΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡΠΊΠΈ - ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΆΠΈΠ²ΠΎΡΡΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊ Π²Π°ΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ Python. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΈΡΠΊΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Python.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ imageio
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ imageio Ρ ΠΏΠΎΠΌΠΎΡΡΡ pip. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install imageio
ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ imageio, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
import imageio
import os
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡΠΊΠΈ ΠΈΠ· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ PNG, ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΈΡΠΊΡ ΠΈΠ· ΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
def create_gif(image_folder, gif_name):
images = []
for filename in os.listdir(image_folder):
if filename.endswith(".png"):
images.append(imageio.imread(os.path.join(image_folder, filename)))
imageio.mimsave(gif_name, images, duration=0.5)
create_gif("ΠΏΡΡΡ_ΠΊ_ΠΏΠ°ΠΏΠΊΠ΅_Ρ_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Π³ΠΈΡΠΊΠΈ.gif")
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ create_gif, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΈΠΌΡ Π³ΠΈΡΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΠ΄Π΅ΠΌ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° PNG Π² ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ imageio.mimsave Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡΠΊΠΈ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΊΠ°Π΄ΡΠΎΠ².
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΠΈΡΠΊΠΈ Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ Π³ΡΠ°ΡΠΈΠΊΠ°
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΈΡΠΊΡ Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ Π³ΡΠ°ΡΠΈΠΊΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ matplotlib. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import matplotlib.pyplot as plt
import numpy as np
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠ°
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡΠΊΠΈ
fig, ax = plt.subplots()
line, = ax.plot(x, y)
def update(frame):
line.set_ydata(np.sin(x + frame / 10.0))
return line,
ani = FuncAnimation(fig, update, frames=100, interval=50)
ani.save("Π°Π½ΠΈΠΌΠ°ΡΠΈΡ.gif", writer='imagemagick')
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ matplotlib, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΠΈΠ½ΡΡΠΎΠΈΠ΄Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ°, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ FuncAnimation Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ani.save Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π³ΠΈΡΠΊΠΈ.
ΠΡΠ²ΠΎΠ΄
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΈΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ imageio Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΠΈΡΠΊΠΈ ΠΈΠ· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ matplotlib Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠ°. ΠΠ°ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ Python ΡΡΠ°Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΈΡΠΎΠΊ.