在Android中配置JavaCV的步骤相当简单,分为三步:
1. 在网上下载javacv-x-bin包和opencv-x-android-arm包,我这有javacv-0.7-bin和opencv-2.4.3-android-arm
2. 在两个包中提取出.so库和.jar库中,放入Android项目的libs中;
3. 将.jar包通过 add jar添加进项目

具体配置过程

1.下载两个包:

  • javacv-0.7-bin
  • opencv-2.4.3-android-arm

2.在Eclipse中创建Android项目,项目名称为:TestJavaCV

3.在libs文件下创建文件夹:armeabi

4.解压两个包,在javacv-0.7-bin里找到
【Java CV与Android】在Android工程里配置JavaCV_第1张图片
将其解压,进入文件里底层,看到
【Java CV与Android】在Android工程里配置JavaCV_第2张图片
将所有这些库放到libs/armeabi文件夹下

5.在javacv-0.7-bin里找到
【Java CV与Android】在Android工程里配置JavaCV_第3张图片
将这两个包放入libs文件夹下

6.进入项目的Build Path,点击Add JARs…将上述两个jar添加进项目,切记,是Add JARs,不是Add External JARs

7.进入解压后的opencv-2.4.3-android-arm文件夹,进入libs/armeabi,将以下所有so库都添加进入Eclipse项目的libs/armeabi文件夹下:
【Java CV与Android】在Android工程里配置JavaCV_第4张图片

8.至此,配置完毕

实例

下面写一个实例,使用JavaCV旋转一张图像,然后在ImageView中显示。

  1. activity_main中将TextView改成ImageView,id为img
  2. 在MainActivity写入如下代码:
package com.example.testjavacv;import static com.googlecode.javacv.cpp.opencv_core.IPL_DEPTH_8U;import static com.googlecode.javacv.cpp.opencv_core.cvFlip;import android.graphics.Bitmap;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.ImageView;import com.googlecode.javacv.cpp.opencv_core.IplImage;public class MainActivity extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 实例化控件        ImageView img = (ImageView) findViewById(R.id.img);        // 创建图像, p4是随便找的一张图像,这里可以自己随便找一张图片代替        Drawable drawable = idToDrawable(R.drawable.p4);        Bitmap bitmap = this.drawableToBitmap(drawable);        // 将Bitmap转化为IplImage        IplImage iplImage = this.bitmapToIplImage(bitmap);        // 处理图像,比如旋转图像        cvFlip(iplImage, iplImage, 0);        // 再将IplImage转化为Bitmap        bitmap = this.IplImageToBitmap(iplImage);        img.setImageBitmap(bitmap);            }        /**     * IplImage转化为Bitmap     * @param iplImage     * @return     */    public Bitmap IplImageToBitmap(IplImage iplImage) {    Bitmap bitmap = null;    bitmap = Bitmap.createBitmap(iplImage.width(), iplImage.height(),     Bitmap.Config.ARGB_8888);    bitmap.copyPixelsFromBuffer(iplImage.getByteBuffer());    return bitmap;    }        /**     * Bitmap转化为IplImage     * @param bitmap     * @return     */    public IplImage bitmapToIplImage(Bitmap bitmap) {    IplImage iplImage;    iplImage = IplImage.create(bitmap.getWidth(), bitmap.getHeight(),    IPL_DEPTH_8U, 4);    bitmap.copyPixelsToBuffer(iplImage.getByteBuffer());    return iplImage;    }            /**     * 将资源ID转化为Drawable     * @param id     * @return     */    public Drawable idToDrawable(int id) {        return this.getResources().getDrawable(R.drawable.p4);    }    /**     * 将Drawable转化为Bitmap     * @param drawable     * @return     */    public Bitmap drawableToBitmap(Drawable drawable) {        if(drawable == null)            return null;        return ((BitmapDrawable)drawable).getBitmap();    }}



更多相关文章

  1. Android Studio项目中使用 AndroidX支持库的相关配置说明
  2. Android周末 第一周-图灵聊天对话机器人小项目
  3. 〖Android〗Android App项目资源字符串检查(检查是否缺少对应的翻
  4. Android studio导入开源项目
  5. Android中的图形图像
  6. Android studio 新建项目后报错:Could not GET 'https://dl.googl
  7. ReactNative入门-Android原生项目转RN项目

随机推荐

  1. 一文搞懂Python错误和异常
  2. 分析全球1085例新冠肺炎患者数据,我们得出
  3. pandas读取表格后的常用数据处理操作
  4. geopandas,用python画地图原来这么简单!
  5. 教你使用Python下载全网视频
  6. 再次学习C语言的课前准备
  7. python爬取招聘网站数据,利用Tableau可视
  8. matplotlib可视化-什么是matplotlib?
  9. 一文搞懂Python文件读写
  10. 教你用pyecharts制作交互式桑基图,赶快学