日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

matlab main函数_Python 和MATLAB 制作Gif 图像

發布時間:2023/12/1 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab main函数_Python 和MATLAB 制作Gif 图像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要內容概述:

  • 預備知識
  • MATLAB 代碼實現GIF
  • 使用imageio 生成GIF
  • 使用animation 交互式方式生成GIF
  • 總結

0,預備知識

首先了解下什么是GIF 圖片,以及常用的圖片格式。

GIF的全稱是Graphics Interchange Format,可譯為圖形交換格式,用于以超文本標志語言(Hypertext Markup Language)方式顯示索引彩色圖像,在因特網和其他在線服務系統上得到廣泛應用。GIF是一種位圖。位圖的大致原理是:圖片由許多的象素組成,每一個象素都被指定了一種顏色,這些象素綜合起來就構成了圖片。

一圖勝千言,GIF 動圖更是圖片中的戰斗機!

下面我們就分別從Python 和MATLAB 介紹Git 動圖的制作方法。

一,在MATLAB 中實現GIF動圖制作

效果:下面是一個制作矩形函數和其頻譜的動圖。

Note:主要的思想就是畫出第一張圖,然后在追加第二張,第三張圖,并設置其延時時間

主要函數介紹:

1 Getframe 函數

F = getframe(h) gets a frame from the figure or axes identified by handle h.

獲取句柄定義的圖片或是坐標的一幀。

如果想獲得圖片的一幀使用的語法為。

F = getframe(gcf);

2 frame2im

Return image data associated with movie frame

幀圖畫轉換為圖像數據

3 rgb2ind

Convert RGB image to indexed image

將RGB 圖片轉換為索引圖片

4 imwrite

Imwrite (A, filename,fmt) writes the image A to the file specified by filename in the format specified by fmt.

5 完整代碼如下:

clc; clear all; close all; N=10000; % sampling numbers Tau0=1; % define initial Tau pic_num = 1; for i=1:100Tau=Tau0/i; TimeRange=linspace(-10*Tau,10*Tau,N); % display time rangeFreqRange=linspace(-200*pi/i,200*pi/i,N); % display frequency rangeHalf_Tau=Tau/2; % -0.5 Tao ==> 0.5 TaoRECT=1/Tau*double(abs(TimeRange)<Half_Tau); % one rectangular pulseSINC=sinc(FreqRange*Tau*pi); % sinc pulse, Xtrasubplot(2,1,1);plot(TimeRange,RECT,'LineWidth',1.5); grid on;xlim([-1 1]); ylim([-0.5 120]);xlabel('Time'); ylabel('Amplitude');subplot(2,1,2);plot(FreqRange,SINC,'LineWidth',1.5); grid on; xlim([-200*pi/i 200*pi/i]); ylim([-0.5 1.5]); xlabel('Frequency'); ylabel('Amplitude');drawnow;F=getframe(gcf);I=frame2im(F);[I,map]=rgb2ind(I,256);if pic_num == 1imwrite(I,map,'impulse.gif','gif', 'Loopcount',inf,'DelayTime',0.1);elseimwrite(I,map,'impulse.gif','gif','WriteMode','append','DelayTime',0.1);endpic_num = pic_num + 1; end

二,Python 中GIF動圖的繪制

1,使用imageio 生成GIF 動態圖像

IMAIO是一個Python庫,它提供了一個簡單的接口來讀取和寫入大量的圖像數據,包括動畫圖像、體積數據和科學格式。它是跨平臺的,運行在Python 2 .x和3.x上,并且易于安裝。

imageio.imread() #從指定的文件讀取圖像。返回一個NUMPY數組,該數組帶有元數據的元屬性。注意,圖像數據按原樣返回,并且可能不總是具有uTI8的dType。

def createGif():images = []filenames=sorted((fn for fn in os.listdir('image') if fn.endswith('.png')))# 分解順序和合成順序不一致,造成Gig 混亂n = len(filenames)for i in range (0,n):filename =str(i)+'.png'if (filename in filenames):images.append(imageio.imread('image'+filename)) imageio.mimsave('gif.gif', images,duration=0.1) def main():processImage('impulse.gif')createGif() if __name__=='__main__':main()

2,使用animation 交互式方式

介紹:使用animation function 來動態的顯示一個sin函數。

import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation x = np.linspace(0, 10, 100) # 生成測試數據 y = np.sin(x)fig, ax = plt.subplots() line= ax.plot(x, y, color='k')def update(num, x, y, line): #num表示迭代次數line.set_data(x[:num], y[:num])line.axes.axis([0, 10, -1.2, 1.2])return line,

FuncAnimation函數生成動畫。參數說明:

#fig 進行動畫繪制的figure 的句柄

#func 自定義動畫函數,即傳入剛定義的函數animate

#frames 動畫長度,一次循環包含的幀數

#fargs 除幀數之外的其他需要調用的參數

#init_func 自定義開始幀。

#interval 更新頻率,以ms計

#blit 選擇更新所有點,還是僅更新產生變化的點。應選擇True,但mac用戶請選擇False,否則無法顯示動畫

# 調用FuncAnimation 生成GIF 動畫

ani = animation.FuncAnimation(fig, update, len(x), fargs=[x, y, line],

interval=25, blit=True,repeat= True)

ani.save('test.gif') # 保存成GIF動態圖格式

plt.show()

總結:

本文主要講述了GIF 圖片格式及用MATLAB 和Python的實現方式。

其中Python實現介紹了兩種方式:1用現有的圖片生成。2使用animation函數實現。

總結

以上是生活随笔為你收集整理的matlab main函数_Python 和MATLAB 制作Gif 图像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。