- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下文件:
version: 1
n_points: 68
{
55.866278 286.258077
54.784191 315.123248
62.148364 348.908294
83.264019 377.625584
102.690421 403.808995
125.495327 438.438668
140.698598 471.379089
158.435748 501.785631
184.471278 511.002579
225.857960 504.171628
264.555990 477.159805
298.168768 447.523374
332.502678 411.220089
350.641672 372.839985
355.004106 324.781552
349.265206 270.707703
338.314674 224.205227
33.431075 238.262266
42.204378 227.503948
53.939564 227.904931
68.298209 232.202002
82.271511 239.951519
129.480996 229.905585
157.960824 211.545631
189.465597 204.068108
220.288164 208.206246
249.905282 218.863196
110.089281 266.422557
108.368067 298.896910
105.018473 331.956957
102.889410 363.542719
101.713553 379.256535
114.636047 383.331785
129.543556 384.250352
140.033133 375.640569
152.523364 366.956846
60.326871 270.980865
67.198221 257.376350
92.335775 259.211865
102.394658 274.137548
86.227917 277.162353
68.397650 277.343621
165.340638 263.379230
173.385917 246.412765
198.024842 240.895985
223.488685 247.333206
207.218336 260.967007
184.619159 265.379884
122.903148 418.405102
114.539655 407.643816
123.642553 404.120397
136.821841 407.806210
149.926926 403.069590
196.680098 399.302500
221.946232 394.444167
203.262878 417.808844
164.318232 440.472370
145.915650 444.015386
136.436942 442.897031
125.273506 429.073840
124.666341 420.331816
130.710965 421.709666
141.438004 423.161457
155.870784 418.844649
213.410389 396.978046
155.870784 418.844649
141.438004 423.161457
130.710965 421.709666
}
.pts
。
landmark = np.loadtxt(image_landmarks_path)
{ValueError}could not convert string to float: 'version:'
最佳答案
它似乎是一个 2D 点云文件,我认为它被称为 Landmark PTS 格式,我能找到的最接近的 Python 引用是 3D-morphable face model-fitting library issue ,它引用了 sample file that matches yours .大多数 .pts 点云工具都希望使用 3D 文件,因此可能无法立即使用此工具。
所以不,似乎没有标准的阅读器;我最接近读取格式的库是 this GitHub repository ,但它有一个缺点:在手动将其解析为 Python 浮点值之前,它会将所有数据读入内存。
但是,格式非常简单(如引用的问题说明),因此您只需使用 numpy.loadtxt()
即可读取数据。 ;简单的方法是将所有这些非数据行命名为注释:
def read_pts(filename):
return np.loadtxt(filename, comments=("version:", "n_points:", "{", "}"))
from pathlib import Path
from typing import Union
import numpy as np
def read_pts(filename: Union[str, bytes, Path]) -> np.ndarray:
"""Read a .PTS landmarks file into a numpy array"""
with open(filename, 'rb') as f:
# process the PTS header for n_rows and version information
rows = version = None
for line in f:
if line.startswith(b"//"): # comment line, skip
continue
header, _, value = line.strip().partition(b':')
if not value:
if header != b'{':
raise ValueError("Not a valid pts file")
if version != 1:
raise ValueError(f"Not a supported PTS version: {version}")
break
try:
if header == b"n_points":
rows = int(value)
elif header == b"version":
version = float(value) # version: 1 or version: 1.0
elif not header.startswith(b"image_size_"):
# returning the image_size_* data is left as an excercise
# for the reader.
raise ValueError
except ValueError:
raise ValueError("Not a valid pts file")
# if there was no n_points line, make sure the closing } line
# is not going to trip up the numpy reader by marking it as a comment
points = np.loadtxt(f, max_rows=rows, comments="}")
if rows is not None and len(points) < rows:
raise ValueError(f"Failed to load all {rows} points")
return points
n_points:
行告诉
np.loadtxt()
要读取多少行,并将文件位置向前移动到刚刚超过
{
开瓶器。它也会以
ValueError
退出如果没有
version: 1
行存在或者是否有除
version: 1
以外的任何内容和
n_points: <int>
在标题中。
关于python - Python 有标准的 PTS 阅读器或解析器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59591181/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在寻找一种方法来检测带有图像点的消息 SCTE35 点。你有什么建议吗? 谢谢你的帮助 最佳答案 到目前为止我已经成功使用了DVBInspector对于这个问题。 关于ffmpeg - 如何使用
当从具有视频和音频流的媒体文件中提取片段而不重新编码(-c 复制)时,指定的请求查找和结束时间很可能不会精确地落在源中的关键帧上。 在这种情况下,ffmpeg 将抓取每个轨道最近的关键帧,并使用不同的
我的应用程序需要在输入的两个(或多个)流之间切换,而只有一个输出(您可以将其视为流多路复用器)。来自输入的帧被解码,然后由于覆盖的东西再次重新编码。 因此,为了安排 AVFrame PTS,我在编码帧
我有一个带有视频和元数据流的 TS。视频已正确设置 PTS 值,而元数据没有(ffprobe 为每个提供 N/A)。但是,元数据包在流中的位置正确。 有没有一种方法可以根据元数据包在流中的位置为它们分
有人可以简要解释一下首字母缩略词 PTS 在视频编码方面的含义吗? 最佳答案 演示文稿时间戳。我不能说它比维基页面更好,在这里找到:http://en.wikipedia.org/wiki/Prese
我正在尝试在输入流上重置 pts 并创建新的 pts 并将流发布到 RTMP。 ffmpeg -re -f lavfi -i "movie=${SOURCE}:s=0+1[out0][out1];[0
假设我有一个来自现有 HLS 的 .ts 文件,我只是想调整它的大小。例如,创建第二个较低分辨率的流,可以在带宽不足时切换。 ffmpeg -i video1080_1.ts -vf "scale=1
我有一个视频,其中包含超出视频数据末尾的一些音频数据包: $> ffprobe -show_packets video.mp4 ... ... ... [PACKET] codec_type=vide
我有一个 mov我需要得到结尾的文件pts对于音频和视频流。我可以通过执行以下操作(手动)来做到这一点: ffprobe -show_packets file.mov 这给了我这样的输出(当然还有更多
我有以下文件: version: 1 n_points: 68 { 55.866278 286.258077 54.784191 315.123248 62.148364 348.908294 83
据我所知,PCR 以 42 位存储,PTS 以 33 位存储在 mpegts 容器中 所以, Max value for PCR is 2^42 = 4398046511104 Max value
我有一个IP摄像机,可以发送8000hz采样率配置的音频和H264视频。 我做了一个程序,从这个IP摄像机生成TS文件,它在VLC,除了iPhone的Android Media Player,Mac
尝试通过 ffmpeg 了解一些音频/视频同步问题,我注意到以下内容。运行此代码 while (av_read_frame(formatCtx, &packet) >= 0) { if (pac
我在从 avi 转码为 mp4(x264) 时遇到了 fps 问题。最终问题出在 PTS 和 DTS 值上,因此在 av_interleaved_write_frame 函数之前添加了第 12-15
我有一个 MPEG2 TS 文件,现在我有兴趣从每个图片帧中提取 PTS 信息。我知道 PTS 是用 33 位描述的,包括 3 个标记位。但是我不知道如何将这个位域转换为更容易理解的形式(秒,毫秒)。
我有一个使用 STDIN 3 的终端 (/proc/xxxx/fd/0 ->/dev/pts/3) 所以如果(在另一个终端)我这样做: echo 'do_something_command' > /d
我正在使用 ffprobe 测试带有 H264 视频的 mp4 文件。 我正在使用以下命令来获取帧信息。 ffprobe -i -show_frames -select_streams v 我得到以
我们有一些处理视频的 FFmpeg 信封。 视频的树首帧为:B -> B -> I 如下图: PTS 和 DTS 对第一帧返回负数: 我们有一些代码会跳过某个时间点以下的帧(第一帧为 0)。 是否可以
我一直在使用从 python 脚本调用的 ffmpeg 命令对文件文件夹进行转码: ffmpeg -y -i in_file.mov -loglevel warning -codec:v libx26
我是一名优秀的程序员,十分优秀!