gpt4 book ai didi

python - 重新调整视频帧之间的时间差

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:13 26 4
gpt4 key购买 nike

我有一段交通发生的视频。每帧看起来像这样:

enter image description here

我计算了类似时间导数的东西。如果f(i)是第i帧,则下图为2*f(i)-f(i+1)-f(i-1):

enter image description here

在这个时间导数视频中,移动粒子具有更明显的特征。问题是我实际上无法将其制作为视频,因为浮点图像的线性组合(强度在 [-1,1] 上)不一定是浮点图像(因为强度不在范围 [-1,1] 内)。因此我想将图像重新调整为 [-1,1]。

我尝试使用sklearn的预处理模块:

from sklearn import preprocessing

images = [image1, image2, ...]
#each imagek is a 1D image array

scaler = preprocessing.MinMaxScaler([-1,1])
scaler.fit(images)

rescaled_images = scaler.transform(images)

此方法会放大噪声并消除对比度。 enter image description here

关于如何将这些时间导数图像重新调整为 [-1,1] 而不丢失信息,有什么建议吗?任何帮助表示赞赏!

(我昨天问过,但删除了这个问题,因为我没有时间用图形正确指出问题)

最佳答案

正如我的评论中提到的,它不起作用的原因是因为 MinMaxScaler 用于功能缩放,但您想要缩放整个图像。假设您的图像是 numpy 数组,最简单的方法如下:

# create a 128x128 image to work with
image = np.random.random((128, 128),)
# scale to [0, 1]
newimage = (image - image.min()) / (image.max() - image.min())
# Now scale to [-1, 1]
newimage = newimage*2-1
print(newimage.min(), newimage.max())

输出: -1.0, 1.0

关于python - 重新调整视频帧之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47684660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com