在 OpenCV 中从相机获取 Mat 图片 Android
Getting Mat picture from camera in OpenCV for Android
我在 Python 和 C 的 OpenCV 方面有一点经验,但在 Java 尤其是 Android Studio 方面为零。现在,我想用openCV制作一个应用程序。
谁能教我如何打开相机,捕捉图像,然后return Mat 类型的图像供以后处理?
如果之前有人问过这个问题,我很抱歉。我一直在寻找答案,但对我遇到的 answer/code 从未感到满意
是这样的:
public class yourclass extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2 {
Mat mRgba;
Mat mGray;
@Override
public void onCameraViewStarted(int width, int height) {
mRgba = new Mat(height, width, CvType.CV_8UC4);
mGray = new Mat(height, width, CvType.CV_8UC1);
}
@Override
public void onCameraViewStopped() {
mRgba.release();
mGray.release();
}
/* this is the important part */
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
Log.i(TAG,"onCameraFrame before inputFrame");
Mat rgb;
int red =rgb[0], green=rgb[1], blue=rgb[2];
return rgb;
}
我在 Python 和 C 的 OpenCV 方面有一点经验,但在 Java 尤其是 Android Studio 方面为零。现在,我想用openCV制作一个应用程序。
谁能教我如何打开相机,捕捉图像,然后return Mat 类型的图像供以后处理?
如果之前有人问过这个问题,我很抱歉。我一直在寻找答案,但对我遇到的 answer/code 从未感到满意
是这样的:
public class yourclass extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2 {
Mat mRgba;
Mat mGray;
@Override
public void onCameraViewStarted(int width, int height) {
mRgba = new Mat(height, width, CvType.CV_8UC4);
mGray = new Mat(height, width, CvType.CV_8UC1);
}
@Override
public void onCameraViewStopped() {
mRgba.release();
mGray.release();
}
/* this is the important part */
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
Log.i(TAG,"onCameraFrame before inputFrame");
Mat rgb;
int red =rgb[0], green=rgb[1], blue=rgb[2];
return rgb;
}