继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

OpenCV for Android(4):Camera的切换

慕标5832272
关注TA
已关注
手记 1071
粉丝 228
获赞 996

经过了前几篇文章中的几个步骤,摄像头已经可以用起来了,接着可以发挥自己的想法对采集图像进行opencv的后续处理。

接下来我想试着加一个按钮,用来实现相机的切换。有了前置摄像头图像就可以做一些人脸相关的应用了。


webp

cover.jpg

界面添加按钮

首先要切换相机得有个操作按钮,我就先弄个简单的按钮放上去,实现功能以后再做点美化。

找到res/layout下面的activity_main.xml,或者是想要插入按钮的界面的xml文件,插入一个button,这个就是普通的灰色方块按钮,代码如下:

<Button 
android:id="@+id/btn_swap" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/swap" android:layout_alignParentBottom="true" android:layout_marginBottom="20dp"/>
增加按钮事件监听

有了按钮还得相应按下的动作,然后回到activity的界面,进行下面三个步骤:

1.声明一个变量

在Activity的声明变量部分添加:

//用于切换前后摄像头private int mCameraIndexCount = 0;

2.增加一个函数用于计算摄像头个数

在Activity函数体内添加

private int getCameraCount() { 
    return Camera.getNumberOfCameras(); 
}

3.增加按钮事件监听

在onCreate()函数体内添加如下代码:

findViewById(R.id.btn_swap).setOnClickListener(new View.OnClickListener() {    @Override
    public void onClick(View v) {
        mOpenCvCameraView.disableView();
        mOpenCvCameraView.setCameraIndex(++mCameraIndexCount % getCameraCount());
        mOpenCvCameraView.enableView();
});

然后点锤子build,点绿三角在手机上运行,即可以看到看到按钮可以切换相机了。

美化

这个灰色方块矩形的按钮能用但不好看:)要好看还得自己画图

于是我用ps自己画了个40x40的小图,背景透明,格式选png,就这样

webp

swap2.png

把这个小图放进资源文件夹对应的路径,我的是

webp

res.jpg

回到activity_main.xml插入按钮那一段,把Buton替换成ImageButton:

<ImageButton
    android:id="@+id/btn_swap"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="@mipmap/swap"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="20dp"/>

然后再运行,美观多了,可以自拍了。



作者:晚晴风_
链接:https://www.jianshu.com/p/f19f8535e339


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP