还有许多处理日期的细节功能
我们首次在Wolfram语言中引入日期概念是在2.0版本,进而在10.0版本中引入了现代日期对象。但要想完全可以计算日期,还有很多细节该考虑。在13.1版本中,我们仍在处理这些相关的功能。比如,有一个日期2022年1月31日,那么一个月之后的日期是什么额——前提是没有2022年2月31日。
如果我们定义“物理”意义上的一个月,与之对应的是一个特定的分数日期:
我们可以利用这一点决定2022年1月31日之后的一个月是哪天:
这里有一点疑惑之处,我们是在以“日子”粒度处理日期这一对象。如果下降到分钟的等级,我们可以看到更多细节:
如果有人研究天文学,那么这种“物理”意义上的日期计算方法会是他们想要的。但是如果有的人每天都在做“人类”活动,那这一定不是这种人想要的;相反,这类人想要去研究日历上的日期。
以下是Wolfram语言的默认设置:
但在13.1版本中,现在我们可以更精确地将想获得的内容参数化。这一默认设置称为"RollBackward":无论原始计算日期“落”在何处,都会“滚动回”第一个有效日期。另一个可选项是"RollForward":
‘ |
无论用哪种方法,都会有奇怪的情况出现。比如,我们从连续的日期开始:
使用"RollBackward,会产生重复2月28日的奇怪现象:
使用"RollForward",会产生重复3月1日的奇怪现象:
有没有另一种选择?有,可以用"RollOver":
这一功能随日期而推进,然后出现了奇怪结果,然后倒退。这里没有所谓的“正确答案”。但是在13.1版本中,你可以指定你想要的具体操作。
不仅月份会出这种问题,年相关的计算也会出问题。它影响的不仅DatePlus,也有DateDifference。
值得一提的是,13.1版本的功能除了可以处理我们上述说过的内容外,Wolfram语言中处理“日期算数”完整框架的效率被大大提高,有时会提高数百倍。
捕捉视频和更多功能
自从8.0版本(2010年)开始,我们就有了ImageCapture功能,以及在11.1版本(2017年)中有AudioCapture功能。现在的13.1版本中,我们有了VideoCapture功能。默认来讲,[VideoCpature]提供了GUI,可以直接从相机中进行录制:
点击向下的箭头,可以打开预览窗口,显示当前视频:
结束录制之后,VideoCapture会返回生成的Video对象:
现在可以开始分析这一视频对象,就像对其他对象的分析进程一样:
VideoCapture是一个阻塞操作,直到录制完成之后才会返回结果。但是VideoCapture也可以“间接”用于动态控制。例如,
可以异步开始和停止录制,即使你正在Wolfram语言的其他部分进行其他操作。但每次停止录制时,视频的值都会自动更新。
VideoCapture从相机中录制视频(如果有许多相机,你可以使用ImageDevice选项来指定从哪个相机中录制)。另一方面,VideoScreenCapture从电脑屏幕进行录制,事实上提供了一段视频等同于CurrentScreenImage。就Wolfram语言所提供的功能而言,VideoScreenCapture就像VideoCapture,是一个阻塞操作。但如果想在其他应用(比如网页浏览器)上查看所发生的事情,也可以使用该功能。此外,您可以提供一个屏幕矩阵捕捉屏幕上的特定区域:
例如,你可以分析生成的视频中RGB颜色级别的时间序列:
如果想要从笔记本中录制屏幕怎么办?你可以使用现存于VideoScreenCapture中的异步动态记录机制,就像在VideoCapture中的功能一样。
同时,VideoCapture和VideoScreenCapture默认都可以捕捉音频。您可以从GUI关闭音频录制,也可以使用AudioInputDevice→None关闭。
如果想要更加奇特的操作,您可以在笔记本中进行屏幕录制,而在这个笔记本中,正在从相机录制视频(反过来会显示正在录制视频等等):
除了能在实时视频中进行捕捉,也可以直接从AnimationVideo函数和SlideShowVideo函数中生成视频,同时也能用TourVideo“浏览”图片。在13.1版本中,TourVideo有了很大改进。
拍摄动物视频,提取大象和斑马的边界框:
现在可以制作出能看到每种动物的旅行视频:
定义变量t的路径函数:
现在可以使用这一路径函数制作“漩涡状”旅行视频:
审核编辑 :李倩
-
Wolfram
+关注
关注
0文章
16浏览量
7726 -
视频
+关注
关注
6文章
1945浏览量
72914
原文标题:Wolfram语言与Mathematica13.1版本上线(7)
文章出处:【微信号:哲想软件,微信公众号:哲想软件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论