小编Vin*_*eng的帖子

OCaml中的"as"关键字

本网站提供的OCaml教程的答案中,一些解决方案,包括用于消除列表元素的连续重复的解决方案,如下所示:

let rec compress = function
    | a :: (b :: _ as t) -> if a = b then compress t else a :: compress t
    | smaller -> smaller;;
Run Code Online (Sandbox Code Playgroud)

这条线的相关性是a :: (b:: _ as t)什么?为什么我不能把它写成a :: b :: t呢?

ocaml pattern-matching

12
推荐指数
2
解决办法
4905
查看次数

使用 FFmpeg 加速视频以获得正确的持续时间

我一直ffmpeg按照这些说明来加快视频使用速度。例如,要将视频速度加快 4 倍,我运行以下命令:

ffmpeg -i vid.MP4 -filter:v "setpts=0.25*PTS" vid_fast.MP4
Run Code Online (Sandbox Code Playgroud)

虽然视频按指示的速度加速,但视频的持续时间(如其属性下所示,以及当我在 VLC 中播放视频时)仍与原始时间相同。例如,如果vid.MP4最初为 4 分钟,则vid_fast.MP4也是 4 分钟,而不是预期的 1 分钟长。(额外的 3 分钟仅包括视频冻结在最后一帧的时间。)

这有点麻烦,因为我需要删除我不感兴趣的额外 3 分钟。有什么办法可以避免这种情况吗?

以下是有关我正在使用的版本的更多信息ffmpeg

ffmpeg version N-69060-gcd960c8 Copyright (c) 2000-2015 the FFmpeg developers
  built on Jan 14 2015 22:13:45 with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b …
Run Code Online (Sandbox Code Playgroud)

video ffmpeg

7
推荐指数
2
解决办法
1626
查看次数

Scala Syntactic Sugar转换为`Option`

在Scala中工作时,我经常想要解析一个类型的字段[A]并将其转换为a Option[A],只有一个案例(例如,"NA""")被转换为None,而另一个案例被包装在一些中.

现在,我正在使用以下匹配语法.

match {
  case "" => None
  case s: String => Some(s)
}
// converts an empty String to None, and otherwise wraps it in a Some.
Run Code Online (Sandbox Code Playgroud)

有没有更简洁/惯用的方式来写这个?

scala

6
推荐指数
1
解决办法
191
查看次数

Windows 终端可点击的网址?

你能ctrl+click在 Windows 终端中输入一个 URL 来在默认浏览器中打开链接吗?我在任何地方都找不到选项;我需要安装一些软件包吗?

windows terminal hyperlink clickable

6
推荐指数
2
解决办法
2739
查看次数

从嘈杂的位置数据中获取有意义的速度信息

如果这个问题发布在错误的 stackexchange 网站上 - 请建议我可以将其迁移到哪里!

\n\n

我正在研究一个物体在与墙壁以及其他物体一起经历多种条件下的速度。物体位置的原始数据略有噪声,原因有二:一是视频的分辨率有限,二是我的跟踪软件在跟踪物体时也存在一些误差(因为物体的图像略有变化)随着时间的推移)。

\n\n

如果简单地使用物体位置的原始数据来计算物体的速度,那么当物体以高帧率跟踪时,会存在很大的误差(大于速度的误差)。

\n\n

我最感兴趣的是物体在碰撞前后的速度,因此这是一个重要的问题。

\n\n

我已经考虑/尝试过的可能选项。

\n\n
    \n
  • 对位置数据应用离散卡尔曼滤波器:这是有关相关问题的帖子中经常出现的解决方案。然而,考虑到当我们开始平滑数据时我们已经拥有所有数据,卡尔曼滤波器是利用可用数据的最佳方法吗?我的理解是,过滤器是针对随着时间推移传入的数据而设计的(例如实时接收的位置数据而不是完整的位置数据集)。
  • \n
  • 对位置数据应用 Savitsky-Golay 平滑:当我在数据上尝试此操作时,我发现每次碰撞后,在 \xc2\xb110 数据点区域中都会引入明显的伪影。我怀疑这与碰撞时的显着加速度有关,但在尝试了一系列 SG 平滑参数后,我无法消除伪影。
  • \n
  • 分离碰撞时的数据,然后使用移动平均值平滑速度:为了克服每次碰撞时加速度带来的问题,我将每个碰撞点的数据分成多个系列。例如,如果发生三个碰撞,数据将分为四个系列。然后计算每个数据系列的速度并使用移动平均值进行平滑。
  • \n
\n\n

此外,我的一些同事建议通过低通滤波器传递速度信息,但我没有尝试过。

\n\n

下面两个问题与我相关,仅供参考。

\n\n

系列数据平滑

\n\n

流畅的 GPS 数据

\n\n

此外,下面的论文似乎还提供了如何实现卡尔曼滤波器的一个很好的建议,尽管是针对实时数据。

\n\n

http://transportation.ce.gatech.edu/sites/default/files/files/smoothing_methods_Design_to_minimize_the_impact_of_gps_random_error_on_travel_distance_speed_and_acceleration_profile_estimates-trr.pdf

\n

video-processing noise smoothing

5
推荐指数
1
解决办法
4220
查看次数

Python - 列出列表列表的理解

我有一个列表列表,并希望生成一个列表列表,其中包含每个列表中的一个元素.

例如,给定列表[[1, 2], [3, 4], [5, 6], [7, 8],我将执行以下代码[(i, j, k, h) for i in [1, 2] for j in [3, 4] for k in [5, 6] for h in [7, 8]]并获取输出

[(1, 3, 5, 7), (1, 3, 5, 8), (1, 3, 6, 7), (1, 3, 6, 8), (1, 4, 5, 7), (1, 4, 5, 8), (1, 4, 6, 7), (1, 4, 6, 8), (2, 3, 5, 7), (2, 3, 5, 8), (2, 3, 6, 7), …

python list

0
推荐指数
1
解决办法
116
查看次数

有效地查找排序列表中元素的索引

我有一个排序列表l(大约20,000个元素),并希望找到l超过给定值t_min 的第一个元素.目前,我的代码如下.

def find_index(l):   
    first=next((t for t in l if t>t_min), None) 
    if first==None:
        return None
    else:
        return l.index(first)
Run Code Online (Sandbox Code Playgroud)

为了对代码进行基准测试,我曾经cProfile运行一个测试循环,并通过比较控制循环的时间来消除随机生成列表所需的时间:

import numpy
import cProfile

def test_loop(n):
    for _ in range(n):
        test_l=sorted(numpy.random.random_sample(20000))
        find_index(test_l, 0.5)

def control_loop(n):
    for _ in range(n):
        test_l=sorted(numpy.random.random_sample(20000))

# cProfile.run('test_loop(1000)') takes 10.810 seconds
# cProfile.run('control_loop(1000)') takes 9.650 seconds
Run Code Online (Sandbox Code Playgroud)

每个函数调用find_index大约需要1.16 ms.有没有办法改进代码,使其更有效,因为我们知道列表已排序?

python sorting optimization python-2.7

0
推荐指数
1
解决办法
97
查看次数