先将OpenCV-2.4.10-android-sdk\sdk\native\libs中文件拷贝到工程lib中
Android调用OpenCV,不用OpenCV manager
代码如下:
package com.example.grayprocess;
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 classMainActivity extends Activityimplements OnClickListener
{
private ButtonbtnProc;
privateImageViewimageView;
privateBitmapbmp;
static
{
if(OpenCVLoader.initDebug())
{
}
}
privateBaseLoaderCallbackmLoaderCallback =newBaseLoaderCallback(this)
{
@Override
public void onManagerConnected(int status)
{
}
};
@Override
publicvoidonCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
btnProc = (Button) findViewById(R.id.btn_gray_process);
imageView = (ImageView) findViewById(R.id.image_view);
//将lena图像加载程序中并进行显示
bmp = BitmapFactory.decodeResource(getResources(),R.drawable.lena);
imageView.setImageBitmap(bmp);
btnProc.setOnClickListener(this);
}
@Override
publicvoidonClick(View v)
{
Mat rgbMat = new Mat();
Mat grayMat = new Mat();
//获取lena彩色图像所对应的像素数据
Utils.bitmapToMat(bmp, rgbMat);
//将彩色图像数据转换为灰度图像数据并存储到grayMat中
Imgproc.cvtColor(rgbMat,grayMat, Imgproc.COLOR_RGB2GRAY);
//创建一个灰度图像
Bitmap grayBmp = Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(), Config.RGB_565);
//将矩阵grayMat转换为灰度图像
Utils.matToBitmap(grayMat,grayBmp);
imageView.setImageBitmap(grayBmp);
}
}