天天看點

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

最近在研究opencv,順便記錄一下免得下次忘記咋整的了。先去官網下載下傳opencv

​​http://opencv.org/downloads.html​​

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

将解壓的檔案放入你的項目空間下面

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

1、導入下載下傳的項目

File ——Import——general——Existing projects into workspace

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

選擇你的項目隻導入紅框就可以了,我這裡因為之前導入過了,是以顯示的是灰色。

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

2、建立Android project 建立完成後點選項目右鍵——properties——Android——add添加library

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

3、将解壓的檔案下的lib檔案夾直接拷貝到自己的目錄下面

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用

項目

Android OpenCV簡單圖檔處理,不需要安裝Manager,不需要ndk,簡單實用
package com.example.demo;

import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.imgproc.Imgproc;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity
    private Button mButton;
    private ImageView mImageview;
    private Bitmap mBitmap;
    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            switch (status) {
            case LoaderCallbackInterface.SUCCESS: {
                Mat rgbMat = new Mat();
                Mat grayMat = new Mat();
                // 擷取ic彩色圖像所對應的像素資料
                Utils.bitmapToMat(mBitmap, rgbMat);
                // 将彩色圖像資料轉換為灰階圖像資料并存儲到grayMat中
                Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);
                // 建立一個灰階圖像
                Bitmap grayBmp = Bitmap.createBitmap(mBitmap.getWidth(),
                        mBitmap.getHeight(), Config.RGB_565);
                // 将矩陣grayMat轉換為灰階圖像
                Utils.matToBitmap(grayMat, grayBmp);
                mImageview.setImageBitmap(grayBmp);
            }
                break;
            default: {
                super.onManagerConnected(status);
            }
                break;
            }
        }
    };
    static {
        if (!OpenCVLoader.initDebug()) {
            System.out.println("opencv 初始化失敗!");
        } else {
            System.loadLibrary("opencv_java3");
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButton = (Button) findViewById(R.id.button);
        mImageview = (ImageView) findViewById(R.id.imageview);
        mBitmap = BitmapFactory.decodeResource(getResources(),
                R.drawable.ic_launcher);
        mButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub