當前位置:編程學習大全網 - 源碼下載 - 圖像檢索系統怎麽做,android

圖像檢索系統怎麽做,android

建立工程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的事情了。基本沒遇到大坑了。

  • 上一篇:微軟是什麽時候成立的?
  • 下一篇:上傳時無法顯示標簽怎麽辦?
  • copyright 2024編程學習大全網