Android OpenCV竖屏人脸识别支持

OpenCV android 默认不支持竖屏 但可以通过一些手段来改变 最直接的就是修改CameraBridgeViewBase

protected void deliverAndDrawFrame(CvCameraViewFrame frame) {

  if (canvas != null) {
                canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR);
                Log.d(TAG, "mStretch value: " + mScale);
                    Matrix matrix = new Matrix();
                    matrix.preTranslate((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2);
                    matrix.postRotate(90f, (canvas.getWidth()) / 2, (canvas.getHeight()) / 2);
                    float scale = (float) canvas.getWidth() / (float) mCacheBitmap.getHeight();
                    matrix.postScale(scale, scale, canvas.getWidth() / 2, canvas.getHeight() / 2);
                    canvas.drawBitmap(mCacheBitmap, matrix, new Paint());
                    Log.d(TAG, "Matrix value: " + "MatrixMatrixMatrixMatrixMatrixMatrixMatrixMatrix)");
                }
)

这种方法很有效果,但是存在一点不足,人脸识别还是不行,设备横过来才可以识别

下面这种方法简单有效,找到onCameraFrame这个方法

    public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
      
        Mat dst = new Mat();
        Mat rotateMat = Imgproc.getRotationMatrix2D(new Point(mRgba.cols()/2,mRgba.rows()/2), 90, 1);
        Imgproc.warpAffine(mRgba, dst, rotateMat, new Size(480,640));
        mNativeDetector.process(dst);

        return dst;
    }

在测试的时候发现 页面会黑屏 ,一直报错

CameraPreview: Mat type: " 480 + "" +640);
01-22 02:31:32.380 21945-21945 E/CameraPreview: Bitmap type: " 640+ "
" +480 );
这是由于变换后尺寸不对,手动设置好 new Size(480,640)就可以了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库。它包含成千上万优化过的算法,为各种计算机视觉应用提...
    沬日十七阅读 4,610评论 0 4
  • Mat类是OpenCV中的一个非常重要的类,Mat类用于表示一个多维的单通道或者多通道的稠密数组。能够用来保存实数...
    一个三要不起阅读 12,930评论 0 1
  • 1 实验目的 目前计算机视觉技术已经比较成熟,相关的开源项目与算法很多,可以将这些开源算法进行整合,进而做成一个小...
    YOUNG_FAN阅读 11,808评论 0 50
  • 听闻闭馆五年的湖南省博物馆终于重新开放,春节期间和父母同游长沙期间特意去博物馆打卡,意外发现母上大人像孩子一样跟着...
    72杂说阅读 5,305评论 0 50
  • 你相信什么就会收获什么。当生命让病魔缠身时,即便是一颗稻草,你都要相信她的力量。一个人在大森林里迷了路...
    幸福小辉18阅读 2,338评论 0 4

友情链接更多精彩内容