Android –图像检索

原创 2017年01月03日 16:23:59

Android –图像检索

本功能是利用opencv计算机视觉函数库里面的集成函数构建而成,在C++的环境开发,因此对接到android平台上面需要两个前提条件:

1):具有NDK-android-opencv开发环境,可以看我的博客

http://blog.csdn.net/wjb820728252/article/details/53946088

2):了解一下基于颜色的图像检索原理,可以看我的博客

http://blog.csdn.net/wjb820728252/article/details/53966099

建立工程project,准备好NDK环境,opencv环境,这些上面两博客有详细说,相信聪明的你一定能搞好。这里只讲解对接到android所遇到的坑及跳出坑的方法,废话少说,下面我们开始。

Native方法:

Object b就是传给C++的bitmap对象

由此生成的.h文件


.cpp文件

这里只讲实现Java_com_example_nativeMothed_NativeMothed_nativeGetImage方法,其他类似


使用AndroidBitmapInfo来存储从java层传递过来的Bitmap对象


这句作用是拿到Java层传递过来的Bitmap对象并传递给AndroidBitmapInfo对象存储


这句作用是锁定bitmap对象,让C++环境能直接操作Bitmap对象


这句作用是解锁Bitmap对象,一般对bitmap对象的操作是放在上锁和解锁之间


上面基本是写好的C++源代码直接粘贴,没有遇到上面坑

真正遇到坑是在Application.mk、Android.mk的配置上

先说Application.mk


APP_STL :=gnustl_static 是对标准库的支持(algorithm)

没有这句就会报下面这种错误


APP_CPPFLAGS :=-frtti -fexceptions 是C++代码的编译选项。在android-ndk-1.5_r1版本中,此变量只适用于C++,但是现在可以同时适用于C和C++。

APP_ABI :=armeabi-v7a  在默认情况下,NDK会使用'armeabi' ABI 来生成二进制机器码,这是基于ARMv5TE的浮点运算CPU,这可以通过使用此变量来选项不同的ABI(Application BinaryInterface).

APP_PLATFORM :=android-8 版本平台

下面是Android.mk


首先是

OPENCV_LIB_TYPE:=STATIC

没有这句程序在导入动态链接库的时候就会一直包libopencv_java.so not found (就是这里被卡了好一段时间,坑)

其次是:

Include  E:/OpenCV-2.4.10-android-sdk/sdk/native/jni/OpenCV.mk

之前一直不知道这个有什么用,但是没有就会报Opencv的内置函数不能解析的错误


最后:

LOCAL_LDLIBS+=  -ljnigraphics -lGLESv1_CM   

这里报错误最多,摸不着头脑,这里只贴出报的错误

没有-ljnigraphics就报AndroidBitmapInfo对象及方法找不到


没有-lGLESv1_CM就报collect2.exe: error: ld returned1 exit status,貌似是静态连接错误

跨过这些坑后,就一片光明了,接下来的是android的事情了。基本没遇到大坑了。

下面请看结果


项目已上传到

http://download.csdn.net/detail/wjb820728252/9727760

希望能帮助到也在学习这方面的朋友!

版权声明:本文为博主原创文章,转载请注明出处。

一款开源的Android图片搜索APP

Material Design风格。使用Rxjava,MVP快速开发框架,封装的RecyclerView,retrofit 2.0网络请求库,Fresco图片加载库,图片瀑布流和错位式布局。具有热门推...

Android - 一种相似图片搜索算法的实现

算法 缩小尺寸。 将图片缩小到8x8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。 简化色彩。 将缩小后的图片,转为64级...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

如何检索获取安卓图片数据库的所有信息

如何检索获取安卓图片数据库的所有信息: 使用内容解析者通过Uri:  获取这些信息 数据库位置:data/data/com.android.providers/media/databases/e...
  • hudfang
  • hudfang
  • 2016年09月21日 14:50
  • 1516

Android多媒体学习二:检索Android的图片库,并显示

上一篇中实例讲解了Android中的Camera的调用和图片的存储,这篇文章,我们将学习如何检索并显示媒体库中的图片。闲话少说,看代码:package demo.camera; import and...

Android自助餐之Jni(五)进阶

Android自助餐之Jni(五)进阶Android自助餐之Jni五进阶 C2C待完善 函数声明 方法调用 使用androidLog 模块化 类型转换 操作bitmap 其他 C2C++(待完善)函数...

Android NDK开发(一)入门篇

Android NDK开发(一)入门篇1、下载NDK设置2、开启新世界大门A、设置local.properties在local.properties最后面加入ndk的路径 我的是这样: ndk.d...

关于“多线程断点续传下载”功能的一个简单实现和讲解

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992     上班第一天,在技术群里面和大家闲扯,无意中谈到了关于框架的使用,一个同学说为了用xUtils的断线...
  • wanglha
  • wanglha
  • 2015年03月13日 12:45
  • 898

Android——Luban图片压缩算法学习

Luban(鲁班) 详细介绍 Luban(鲁班)——Android图片压缩工具,仿微信朋友圈压缩策略。 项目描述 目前做app开发总绕不开图片这个元素。但是随着手机拍照分辨率的提升,图片的压...

android--图像检索

  • 2017年01月03日 15:57
  • 7.08MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android –图像检索
举报原因:
原因补充:

(最多只允许输入30个字)