一个 WRITE_VIDEO 示例
原文链接: https://www.nv5geospatialsoftware.com/Learn/Blogs/Blog-Details/a-write-video-example
19863 为本文评分:
暂无评分
一个 WRITE_VIDEO 示例
Anonym 2013年6月27日,星期四
IDL 8.2.3 中引入的例程 QUERY_VIDEO、READ_VIDEO 和 WRITE_VIDEO 是 IDLffVideoRead 和 IDLffVideoWrite 类的过程化封装。这些例程旨在为处理视频数据提供一个简化的接口,类似于用于处理图像的 QUERY_IMAGE、READ_IMAGE 和 WRITE_IMAGE 例程。它们也应该让人联想到 XINTERANIMATE 和旧的 MPEG 例程(MPEG_OPEN、MPEG_PUT 等)的外观和感觉。这是一个使用 WRITE_VIDEO 制作影片的简单示例。首先通过调用 WRITE_VIDEO 初始化一个视频文件,并返回一个句柄:
outfile = 'write_video_ex.avi'
video_dims = [640, 512]
write_video, outfile, handle=h, video_dimensions=video_dims, video_fps=24
句柄 h 用作对已打开文件的引用。接下来,显示一个等高线图:
c = contour(dist(40), c_value=indgen(6)*5, rgb_table=72, $
/fill, planar=0, dimensions=video_dims, $
title='IDL 8.2.3 WRITE_VIDEO Example')
现在将等高线图旋转 181 次,并在每次迭代时进行屏幕抓取。使用句柄作为引用,将抓取到的图像写入上面打开的视频文件中。
for i=0, 180 do begin
c.rotate, 2, /zaxis
sgrab = c.copywindow()
write_video, outfile, sgrab, handle=h
endfor
尽管指定了句柄,但在调用 WRITE_VIDEO 时仍然需要 outfile 参数。最后,关闭视频文件:
write_video, /close, handle=h
文件 write_video_ex.avi 应该会写入到你当前的 IDL 工作目录中。在你喜欢的播放器中循环播放效果最佳。(不过要小心,它很催眠。)