android opencv环境的搭建

本文详细介绍了如何在Android的eclipse环境中搭建OpenCV。首先确保已有Android开发环境,接着创建新工程greyprocess,并将测试图片添加至资源目录。通过工程属性设置,引入下载的OpenCV库2.4.6。最后提到了代码中的strings.xml文件,说明了工程文件结构。
摘要由CSDN通过智能技术生成

http://blog.csdn.net/pwh0996/article/details/8957764   这篇文章讲解很多东西,讲解很详细^_^

引用了一部分内容,搬过来mark一下。

之前的环境基础是 eclipse开发android的相关环境已经可以了,需要的操作就是增加opencv功能。

1) eclipse中创建android工程greyprocess

2)将测试图像lena.png添加到资源目录res/drawable-hdpi中

工程右击 选择properties


选择add  选择了2.4.6


额 这个opencv library 2.4.6 是网上down的。。

下面是代码

1)工程的文件夹res---values里面 strings.xml

<resources>

    <string name="app_name">GrayProcess</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="str_proc">gray process</string>
    <string name="str_desc">image description</string>

</resources>

2)layout文件夹里面的 main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    <Button 
        android:id="@+id/btn_gray_process"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/str_proc"/>
    
    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/str_proc"/>

</LinearLayout>

3)  MainActivity.java

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.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap.Config;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener{

	private Button btnProc;
	private ImageView imageView;
	private Bitmap bmp;
	
	//OpenCV类库加载并初始化成功后的回调函数,在此我们不进行任何操作
	private BaseLoaderCallback  mLoaderCallback = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            switch (status) {
                case LoaderCallbackInterface.SUCCESS:{
                } break;
                default:{
                    super.onManagerConnected(status);
                } break;
            }
        }
    };
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        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
	public void onClick(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);
	}
	
	@Override
    public void onResume(){
        super.onResume();
        //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是
        //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存在于OpenCV安装包的apk目录中
        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
    }
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值