我正在.mp4使用 opencv-python (3.4.3.18) 和 python (3.6.6)读取视频文件
vid = cv2.VideoCapture(video_path)
Run Code Online (Sandbox Code Playgroud)
原始视频大约有 59 FPS,我想将其降低到 10 FPS。所以,我cv2.CAP_PROP_FPS使用以下设置属性,
flag = vid.set(cv2.CAP_PROP_FPS, 10)
Run Code Online (Sandbox Code Playgroud)
(参考:https : //docs.opencv.org/3.4.3/d8/dfe/classcv_1_1VideoCapture.html#a8c6d8c2d37505b5ca61ffd4bb54e9a7c)
但是,当我打印flag它给出的值时False。这意味着VideoCapture实例使用的后端不支持该属性。因此,当我使用阅读框架时,
return_value, frame = vid.read()
Run Code Online (Sandbox Code Playgroud)
它返回所有 59 帧,使后期处理步骤更加耗时。如何解决这个问题?
我正在遵循本指南。
它显示了如何使用以下tfds.load()方法从新的TensorFlow数据集中下载数据集:
import tensorflow_datasets as tfds
SPLIT_WEIGHTS = (8, 1, 1)
splits = tfds.Split.TRAIN.subsplit(weighted=SPLIT_WEIGHTS)
(raw_train, raw_validation, raw_test), metadata = tfds.load(
'cats_vs_dogs', split=list(splits),
with_info=True, as_supervised=True)
Run Code Online (Sandbox Code Playgroud)
后续步骤显示了如何使用map方法将函数应用于数据集中的每个项目:
def format_example(image, label):
image = tf.cast(image, tf.float32)
image = image / 255.0
# Resize the image if required
image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))
return image, label
train = raw_train.map(format_example)
validation = raw_validation.map(format_example)
test = raw_test.map(format_example)
Run Code Online (Sandbox Code Playgroud)
然后访问元素,我们可以使用:
for features in ds_train.take(1):
image, label = features["image"], features["label"]
Run Code Online (Sandbox Code Playgroud)
要么
for example in tfds.as_numpy(train_ds):
numpy_images, …Run Code Online (Sandbox Code Playgroud) python tensorflow tensorflow-datasets data-augmentation tensorflow2.0