你好,那里有ima初学者到opencv android世界,我正在使用opencv从我的理解和阅读中开发一个应用程序我到目前为止已经明白应用程序中的onCameraFrame()函数适用于我们可以处理的每个相机图像帧并向屏幕发送一些不同的输出。我知道它的基本问题,但有一种方法可以迭代这个相机图像框架,如:
for(int i = 0 ; i < mat.rows()...){
for(int j = 0 ; j < mat.cols()...){
//my image processing
}
}
我尝试了各种方法,例如:
double [] mpixel = mat.get(i,j);
但该应用程序似乎无法正常工作我被困住它将有助于提前感谢您:)
PS:
我正在尝试从视频中提取前景我正在创建一个应用程序,这将像一个视频通话,它将从视频中删除人,并将其发送到我的应用程序处理它的下一部分。 简而言之:我只需要提取前景人物,背景主要是白色的墙壁。
更新:
尝试使用抓取:
public void onCameraViewStarted(int width, int height) {
mrgba = new Mat(width , height , CvType.CV_8UC3);
mfrg = new Mat();
mbg = new Mat();
mgrey = new Mat(width, height ,CvType.CV_8UC3 );
}
public void onCameraViewStopped() {
mrgba.release();
}
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
mrgba = inputFrame.rgba();
Imgproc.cvtColor(mrgba , mgrey , Imgproc.COLOR_BGRA2BGR);
mmask = new Mat(mgrey.rows() , mgrey.cols() , CvType.CV_8UC1);
Rect mrect = new Rect(100,100,100,100);
Imgproc.grabCut(mgrey , mmask , mrect , mfrg , mbg , 1 );
return mmask;
}
给出错误,掩码应仅包含GC_BCD GC_FBD等值