90度旋转 flip opencv_OpenCV自带的JavaCameraView竖屏状态下会旋转90°显示解决方案

本文介绍了如何解决OpenCV在JavaCameraView竖屏模式下显示图像旋转90度的问题。通过调整旋转方向和镜像翻转,以及修改预览视图的大小计算方式,实现了正确比例的竖向图像预览。
摘要由CSDN通过智能技术生成

1. 首先试着把输出的图像竖起来

首先我们把页面的android:screenOrientation="landscape"从水平改成竖向,此时的效果是显示的内容向左旋转90°,然后显示的区域是一个正方形。接着我们开始试着让图像竖起来——

如果大家按照demo试着实现的话想必会让页面实现CameraBridgeViewBase.CvCameraViewListener2这个接口,此接口中需要实现public Mat onCameraFrame(CvCameraViewFrame inputFrame);

这个方法。根据其描述以及自己的猜测,我们可以知道这个方法是在摄像头传帧时被调用到。我们可以在这个方法中去处理所获得到的帧,寻找人脸的操作自然也就在这里进行了。所以我们这寻找人脸的操作之前,先要将图像旋转回来。Mat gray = inputFrame.gray();

rgb = inputFrame.rgba();        // 旋转输入帧

if (isFrontCamera) {

Core.rotate(rgb, rgb, Core.ROTATE_90_COUNTERCLOCKWISE);

Core.rotate(gray, gray, Core.ROTATE_90_COUNTERCLOCKWISE);

Core.flip(rgb, rgb, 1);

Core.flip(gray, gray, 1);

} else {

Core.rotate(rgb, rgb, Core.ROTATE_90_CLOCKWISE);

Core.rotate(gray, gray, Core.ROTATE_90_CLOCKWISE);

}

这里的rgb既是我们得到的彩色图像,gray既是灰度化之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值