小编Con*_*nic的帖子

OpenCV 实时流视频捕获很慢。如何丢帧或与实时同步?

目标和问题

我想设置一个 opencv 系统来处理 HLS 流或 RMTP 流,但是,我遇到了一个关于降低的帧速率和累积延迟的奇怪问题。就好像视频离它应该在流中的位置越来越远。

我正在寻找一种方法来与实时源保持同步,即使这意味着丢帧。

当前方法

import cv2

cap = cv2.VideoCapture()
cap.open('https://videos3.earthcam.com/fecnetwork/9974.flv/chunklist_w1421640637.m3u8')

while (True):
    _, frame = cap.read()
    cv2.imshow("camCapture", frame)
    cv2.waitKey(1)
Run Code Online (Sandbox Code Playgroud)

我已经在 VLC 上验证了流的质量,它似乎在那里工作正常。

cv2速度

.

实际/预期速度

问题:

  • 我在这里做错了什么?
  • 为什么这么慢?
  • 如何将其同步到实时速度?

python video opencv video-capture video-streaming

18
推荐指数
2
解决办法
2万
查看次数

使用 isel 时如何在 xarray 中保留维度值?

设置:

我有一个 xarray 数据集,其尺寸为x, yt名为foo

选择命令

bar = foo.isel(t = 2)  
Run Code Online (Sandbox Code Playgroud)

沿轴选择单个切片t并将结果存储在bar

我的问题:
bar只有尺寸xy

我想t在选择后使用以快速重组许多切片

期望:
bar具有尺寸x, y, t (与其超集的尺寸相同)

  • 每个单独的切片在现实世界设置中foo都有一个关联的坐标值。t单个切片barfoo保留该t坐标,以便如果数据集因任何原因被分割,则可以在将来重新组合。

  • sel关于isel尺寸处理的 可预测/一致的行为将意味着更少的手动检查。

问题

(1) 文档引用了一个kwarg名为**indexers_kwargs. 是否有更具体的文件说明接受的内容**indexers_kwargs?我很难找到明确的列表或有意义的定义。我的希望是,在使用or时可能存在kwarg用于保存值的 use 。这样的事情存在吗? tselisel

(2) 目前我正在考虑的方法是包装iselsel使用可以仅保留一个值的暗淡的函数。如果原生支持的话会更开心。您能想象/提出替代解决方法吗?

python-3.x python-xarray

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

使用 x 数组计算年平均值

我有一个python xarray数据集,time,x,y其维度和value1变量。我正在尝试计算value1每个x,y坐标对的年平均值。

我在阅读文档时遇到了这个功能:

ds.groupby('time.year').mean()  
Run Code Online (Sandbox Code Playgroud)

这似乎是计算每个给定时间片中所有 x,y坐标对的单个年平均值, 而不是value1每个给定时间片中单个坐标对
的年平均值。 x,y

虽然上面的代码片段产生了错误的输出,但我对其过于简化的形式非常感兴趣。我真的很想找出“X-arrays 技巧”来为给定的x,y坐标对计算年平均值,而不是自己将其组合在一起。

有人指出我正确的方向吗?我应该暂时把它变成一个pandas对象吗?

time-series python-xarray

4
推荐指数
1
解决办法
1797
查看次数

抑制 python-xarray 的警告

我正在运行以下代码

positive_values = values.where(values > 0)  
Run Code Online (Sandbox Code Playgroud)

在这个例子中values可能包含nan元素。我相信由于这个原因,我收到以下运行时警告:

RuntimeWarning: invalid value encountered in greater_equal if not reflexive  
Run Code Online (Sandbox Code Playgroud)

是否xarray有抑制这些警告的方法?

python suppress-warnings python-3.x python-xarray

4
推荐指数
1
解决办法
531
查看次数

为什么在python xarray for nan中抛出'更大'中遇到的无效值?难道南不应该没有任何问题吗?

以下是哲学问题,旨在弄清楚为什么xarray是它的方式.


我无法弄清楚Xarrays如何做以下事情.

positive_values = values.where(values > 0)  
Run Code Online (Sandbox Code Playgroud)

它遵循x-arrays语法,并使用xarrays计算我想要它做什么,但抛出此运行时警告.

RuntimeWarning: invalid value encountered in greater if not reflexive  
Run Code Online (Sandbox Code Playgroud)

我的问题是,我如何滥用Xarrays

我想说nans的是他们在各个操作中通勤的意义上的优秀案例.(可以轻松发现或处理缺失的数据值)

IE浏览器.

value = np.nan + 1  
final_value = value/2  
#final_value evaluates to 'nan'
Run Code Online (Sandbox Code Playgroud)

这使得它们在X阵列中的表示非常有用.xarrays可能缺少数据,但这不应该阻止数千个点的操作.

为什么不>通过nan没有任何问题?如果这是我想要的行为,我应该以其他方式这样做并忽略错误吗?

numpy python-xarray

2
推荐指数
1
解决办法
6566
查看次数