图像处理(三) 检测障碍物

本文介绍了一个手机图像处理项目,旨在检测设备静止时前方是否有物体移动。通过图片裁切、缩放来提高处理速度,使用OpenCV进行灰度化和二值化操作以比较图像差异。此外,讨论了相机自动对焦和图像相似度判断的方法。
摘要由CSDN通过智能技术生成

前几天写了一个小的项目关于:当手机处于静止状态时,识别是否动或者前方有不同物体

MainActivity

public class MainActivity extends Activity implements SurfaceHolder.Callback,
        PreviewCallback {
   

    // 定义对象
    private SurfaceView mSurfaceview = null; // SurfaceView对象:(视图组件)视频显示
    private SurfaceHolder mSurfaceHolder = null; // SurfaceHolder对象:(抽象接口)SurfaceView支持类
    private Camera mCamera;
    private Camera.Parameters parameters = null;
    private Bitmap bitmap;// 原图
    private Bitmap tempBitmap;// temp bitmap
    private Bitmap bitmap_;//处理后的bitmap
    private Bitmap bgBitmap;//背景图
    private Bitmap bgBitmap_;//处理后的背景图片
    private ImageView img;
    private SurfaceView view;
    private long times = 0l;//连续多久不动时间
    private long indexFrame = 0l;
    private static final String TAG ="MainActivity";
    private long times_ = 0l;//temp time    
    private int police_time = 25;//持续时间
    private int police_time_ = 10;//持续时间
    private long times_2 = 0l;//报警确认次数
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.camera_layout);
        init();
    }

    // OpenCV库加载并初始化成功后的回调函数
        private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {

            @Override
            public void onManagerConnected(int status) {
                // TODO Auto-generated method stub
                switch (status) {
                case BaseLoaderCallback.SUCCESS:
                    Log.i(TAG, "成功加载");
                    break;
                default:
                    super.onManagerConnected(status);
                    Log.i(TAG, "加载失败");
                    break;
                }
            }
        };

        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
            // load OpenCV engine and init OpenCV library
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_4,
                    getApplicationContext(), mLoaderCallback);
            Log.i(TAG, "onResume sucess load OpenCV...");

        }


    // 初始化控件
    private void init() {

        // SurfaceView
        view = (SurfaceView) findViewById(R.id.surface_view);
        // 照相机预览的空间
        view.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        view.getHolder().setFixedSize(1920, 1080); // 设置Surface分辨率
        view.getHolder().setKeepScreenOn(true);// 屏幕常亮
        view.getHolder().addCallback(this);// 为SurfaceView的句柄添加一个回调函数

        // ImageView
        img = (ImageView) findViewById(R.id.img_res);
    }

    // SurfaceHoder.Callback
    // 当SurfaceView/预览界面的格式和大小发生改变时,该方法被调用
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
        // TODO Auto-generated method stub
        parameters = mCamera.getParameters(); // 获取各项参数
        mCamera.setParameters(parameters);
        parameters.setPictureFormat(PixelFormat.JPEG); // 设置图片格式
        parameters.setPreviewSize(width, height); // 设置预览大小
        parameter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值