在 android 中使用 opencv 捕获视频帧
Capture video frames with opencv in android
我正在尝试使用 opencv-android 实时处理 android 视频。到目前为止,我可以使用 opencv 访问视频,并将其显示在 org.opencv.android.JavaCameraView
上。(我指的是 this link)我无法按帧访问摄像机的视频源-明智的。我需要获取每一帧,以便在它们上应用一些 opencv 算法来进行对象跟踪。请建议一种使用 opencv 访问和处理帧的方法。 (如果有人问过,请重定向)
操作方法如下:
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
//Do your processing here, for example:
Mat image = inputFrame.rgba();
Mat ret_mat=new Mat();
Core.add(image, new Scalar(40, 40, 40, 0), ret_mat); //change brightness of video frame
return ret_mat;
}
OpenCv 函数与 Mat 对象一起运行,它表示 image/frame 的像素矩阵。上面的代码使每帧亮度增加 40 个单位。
我正在尝试使用 opencv-android 实时处理 android 视频。到目前为止,我可以使用 opencv 访问视频,并将其显示在 org.opencv.android.JavaCameraView
上。(我指的是 this link)我无法按帧访问摄像机的视频源-明智的。我需要获取每一帧,以便在它们上应用一些 opencv 算法来进行对象跟踪。请建议一种使用 opencv 访问和处理帧的方法。 (如果有人问过,请重定向)
操作方法如下:
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
//Do your processing here, for example:
Mat image = inputFrame.rgba();
Mat ret_mat=new Mat();
Core.add(image, new Scalar(40, 40, 40, 0), ret_mat); //change brightness of video frame
return ret_mat;
}
OpenCv 函数与 Mat 对象一起运行,它表示 image/frame 的像素矩阵。上面的代码使每帧亮度增加 40 个单位。