Android Studio 配置OpenCV4.4.0 不用安装OpenCV Manager (泪崩居然用了礼拜天2天的时间居然还没配置成功,今天又看了下配置成功了)
Android Studio 配置OpenCV4.4.0 ,說來慚愧居然用戶禮拜天2天的時間呢,期間遇到的問題大致有4個問題
這里我也總結出了最后在列舉出來,(可能是新版和之前舊版本不一樣的問題按照網上的配置運行總是報錯)
這里默認我們的電腦上安裝的有android studio 并且配置好了ndk 環境。
如果ndk 沒有配置可以點擊查看ndk 環境配置
1 首先到OpenCV 官網上點擊Releases 下載 庫文件
點擊直接跳轉到releases 跳轉
點擊進去點擊Releases
然后我們在OpenCV4.4.0 選中android
下載之后打開目錄是這樣的
samples 里面 是官方的demo?
sdk 是我們要使用的庫
?
下載之后,我們新建一個demo,然后把sdk 導入進入,這里啰嗦下網上的教程是導入sdk 里面的java并吧java文件改成庫?然后在新建一個jniLibs,之后再把sdk\native\libs 里面的包放進入,最后在gradle 中配置下,然后配置好之后運行也沒有問題但是調用的時候報錯呢問題也是百度了2天沒有處理好,最后打開了sdk 里面的build.gradle 看下配置這個sdk 本身就是一個庫,為啥網上非要進入sdk里面的java,然后在修改成庫,最后自己想著直接引入sdk 試試看運行成功了
啰嗦了一會,這個可能是版本的問題之前的人都成功了,現在OpenCV4.4.0 人家優化了不用這么麻煩了
在新建的項目中引入庫sdk
File --- new -- Import Module
之后就是
加載一會就好了,加載之后的效果圖如下
接著就是驗證是否可以了在onResume 寫入OpenCVLoader.initDebug() 具體如下
if (OpenCVLoader.initDebug()) {Log.d(TAG, "OpenCV library found inside package. Using it!");} else {Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");} 
之后就是看打印結果了
ok 到這里我們就配置完了, 說白了就是一個庫我們下載好了,然后引入到項目這樣就好了,居然弄了2天,太難了
下面寫一個是圖片邊灰色的demo 試試OpenCV
?具體效果如下圖
布局代碼
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><ImageViewandroid:id="@+id/img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="fitXY" /><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="點擊變為灰色圖片"/></LinearLayout> 
java 代碼
public class MainActivity extends AppCompatActivity {private final String TAG = "MainActivity";private ImageView imageView;private Button button;private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {@Overridepublic void onManagerConnected(int status) {switch (status) {case LoaderCallbackInterface.SUCCESS: {Log.i(TAG, "OpenCV loaded successfully");}break;default: {super.onManagerConnected(status);}break;}}};@Overridepublic void onResume() {super.onResume();if (OpenCVLoader.initDebug()) {Log.d(TAG, "OpenCV library found inside package. Using it!");mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);} else {Log.d(TAG,"Internal OpenCV library not found. Using OpenCV Manager for initialization");OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback);}}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView = findViewById(R.id.img);button = findViewById(R.id.btn);final Bitmap bitmap =((BitmapDrawable) getResources().getDrawable(R.mipmap.image)).getBitmap();imageView.setImageBitmap(bitmap);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Bitmap grayBitmap = toGrayByOpencv(bitmap);imageView.setImageBitmap(grayBitmap);}});}public Bitmap toGrayByOpencv(Bitmap srcBitmap) {Mat mat = new Mat();Utils.bitmapToMat(srcBitmap, mat);Mat grayMat = new Mat();Imgproc.cvtColor(mat, grayMat, Imgproc.COLOR_BGRA2GRAY, 1);Utils.matToBitmap(grayMat, srcBitmap);return srcBitmap;}} 
ok 到此終于完成了,由于 配置的問題 出現的幾個問題這里列舉出來
1?OpenCV error: Cannot load info library for OpenCV
2? 運行是彈框提示安裝OpenCV Manager? :
OpenCV Manager package was not found Try to install it?
彈框如下
3? 黃色警告libc++_shared.so" not found :
System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library "libc++_shared.so" not found
安裝上面的配置之后三個問題就不再提示了
?
如果安裝上面的配置失敗了可以下載demo看看效果
demo 地址點擊查看
?
總結
以上是生活随笔為你收集整理的Android Studio 配置OpenCV4.4.0 不用安装OpenCV Manager (泪崩居然用了礼拜天2天的时间居然还没配置成功,今天又看了下配置成功了)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 伊开头的成语有哪些啊?
 - 下一篇: 小腿冰点脱毛一般多少钱?