如何将视频作为输入传递给 Android Studio 中的 python 代码
How to pass video as input to python code inside Android Studio
我想开发一个可以将视频作为输入然后将该视频传递给 python 代码的应用程序。我知道有一个名为 Chaquopy 的 python SDK,用于在 android studio 中使用 python 代码。但我不知道如何从 Android Studio 中的 res 文件夹中获取视频并将其传递给 python 代码。我的主要算法在 python 中,为此我需要将视频作为输入传递。
我是 android Studio 的新手。有人可以帮助我吗?
使用 Chaquopy 时,在 Python 代码中加载文件的最简单方法是将其放在 Python 源代码目录中,而不是 res 目录中。来自 FAQ:
If the data file is in the same directory as the Python file:
from os.path import dirname, join
filename = join(dirname(__file__), "filename.txt")
You can then pass the filename to open, or any other function which reads a file.
If the data file and the Python file are in different directories, then change the path accordingly. For example, if the Python file is alpha/hello.py
, and the data file is bravo/filename.txt
, then replace filename.txt
above with ../bravo/filename.txt
.
Chaquopy 目前不提供任何可以直接读取视频文件的 Python 包。但是,如果您将 mobile-ffmpeg 添加到您的项目,您可以从 Python 调用它以从视频中提取帧,然后您可以根据需要进行处理。
有关完整示例,请参见 here,相关行如下:
from com.arthenica.mobileffmpeg import FFmpeg
...
FFmpeg.execute("-i " + path + " -r " + frame_gap + " -f image2 " + initial_path + "/image-%2d.png")
image_read_counter = 1
while image_read_counter < int(vid_length_in_seconds * frame_gap):
str_image_read_counter = '%02d' % image_read_counter
image_path = initial_path + '/image-' + str_image_read_counter + '.png'
img = cv2.imread(image_path)
...
我想开发一个可以将视频作为输入然后将该视频传递给 python 代码的应用程序。我知道有一个名为 Chaquopy 的 python SDK,用于在 android studio 中使用 python 代码。但我不知道如何从 Android Studio 中的 res 文件夹中获取视频并将其传递给 python 代码。我的主要算法在 python 中,为此我需要将视频作为输入传递。 我是 android Studio 的新手。有人可以帮助我吗?
使用 Chaquopy 时,在 Python 代码中加载文件的最简单方法是将其放在 Python 源代码目录中,而不是 res 目录中。来自 FAQ:
If the data file is in the same directory as the Python file:
from os.path import dirname, join filename = join(dirname(__file__), "filename.txt") You can then pass the filename to open, or any other function which reads a file.
If the data file and the Python file are in different directories, then change the path accordingly. For example, if the Python file is
alpha/hello.py
, and the data file isbravo/filename.txt
, then replacefilename.txt
above with../bravo/filename.txt
.
Chaquopy 目前不提供任何可以直接读取视频文件的 Python 包。但是,如果您将 mobile-ffmpeg 添加到您的项目,您可以从 Python 调用它以从视频中提取帧,然后您可以根据需要进行处理。
有关完整示例,请参见 here,相关行如下:
from com.arthenica.mobileffmpeg import FFmpeg
...
FFmpeg.execute("-i " + path + " -r " + frame_gap + " -f image2 " + initial_path + "/image-%2d.png")
image_read_counter = 1
while image_read_counter < int(vid_length_in_seconds * frame_gap):
str_image_read_counter = '%02d' % image_read_counter
image_path = initial_path + '/image-' + str_image_read_counter + '.png'
img = cv2.imread(image_path)
...