实习第二天-opencv开发文档阅读

今天是2019.8.2,实习第二天,昨天安装好了opencv和demo跑起来了,今天本来是想要自己搭建opencv开发环境的,结果错误很多。导师就让我在demo里面操作修改,于是我先去网上查看opencv的开发文档,来学习一下opencv如何从安卓设备的摄像头,获取图像,图像处理,识别人脸的。
private CameraBridgeViewBase mOpenCvCameraView;
这段代码定义了一个opencv包装好的,camera。
大概思路就是摄像头获取图像,在opencv的sdk里面处理图像,比对人脸,然后框出来
public Mat onCameraFrame(CvCameraViewFrame inputFrame) { mRgba = inputFrame.rgba(); mGray = inputFrame.gray(); if (mAbsoluteFaceSize == 0) { int height = mGray.rows(); if (Math.round(height * mRelativeFaceSize) > 0) { mAbsoluteFaceSize = Math.round(height * mRelativeFaceSize);
        } mNativeDetector.setMinFaceSize(mAbsoluteFaceSize);
    }
    MatOfRect faces = new MatOfRect(); if (mDetectorType == JAVA_DETECTOR) { if (mJavaDetector != null) mJavaDetector.detectMultiScale(mGray, faces, 1.1, 2, 2, // TODO: objdetect.CV_HAAR_SCALE_IMAGE  new Size(mAbsoluteFaceSize, mAbsoluteFaceSize), new Size());
    } else if (mDetectorType == NATIVE_DETECTOR) { if (mNativeDetector != null) mNativeDetector.detect(mGray, faces);
    } else {
        Log.e(TAG, "Detection method is not selected!");
    }
    Rect[] facesArray = faces.toArray(); for (int i = 0; i < facesArray.length; i++)
        Imgproc.rectangle(mRgba, facesArray[i].tl(), facesArray[i].br(), FACE_RECT_COLOR, 3); return mRgba;
}

这段代码包含了,获取图像,识别人脸,展示识别过后的图像的功能。


上图是通过回调展示rgba图片
感受:作为一个新手学会去调用他给的api实现自己的功能是最好的,到后面慢慢成长需要知道原理再去学原理往往能够理解很多。
机器学习提供人脸识别的api
计算机图形学和数字图像处理提供图片的处理api给机器学习程序学习
上面集成为一个jni给安卓程序员去调用。
安卓传入摄像头获得图片。给opencv
全部评论

相关推荐

06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
这一集&nbsp;硕士输的很惨
HoePointer:普通硕士的悲哀,高的进不去,低的要不起
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务