将 mp4 文件逐帧读取到 google ML Kit 的 inputimage 中
Read a mp4 file frame by frame into inputimage of google ML Kit
我正在尝试读取一个 mp4 文件,然后使用 google ML 工具包来分析姿势和面部。我可以使用 ffmpegframegrabber
逐帧读取文件
FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(path); frameGrabber.start();
IplImage frame;
try {
frame = frameGrabber.grab();
} catch (Exception e) {
e.printStackTrace();
}
现在 google ML 套件对所有内容都使用 inputImage。所以问题是如何将帧转换为输入图像?或者有更好的方法吗?
我可以使用
获取 BufferedImage
BufferedImage bi = frame.getBufferedImage();
看起来 Android 不支持缓冲图像。我也没有找到将 BufferedImage 转换为 InputImage
的方法
您可以尝试使用 MediaExtractor 获取每个帧的字节缓冲区,然后从提取的缓冲区构建 InputImage。
https://developer.android.com/reference/android/media/MediaExtractor
我正在尝试读取一个 mp4 文件,然后使用 google ML 工具包来分析姿势和面部。我可以使用 ffmpegframegrabber
逐帧读取文件FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(path); frameGrabber.start();
IplImage frame;
try {
frame = frameGrabber.grab();
} catch (Exception e) {
e.printStackTrace();
}
现在 google ML 套件对所有内容都使用 inputImage。所以问题是如何将帧转换为输入图像?或者有更好的方法吗?
我可以使用
获取 BufferedImageBufferedImage bi = frame.getBufferedImage();
看起来 Android 不支持缓冲图像。我也没有找到将 BufferedImage 转换为 InputImage
的方法您可以尝试使用 MediaExtractor 获取每个帧的字节缓冲区,然后从提取的缓冲区构建 InputImage。 https://developer.android.com/reference/android/media/MediaExtractor