最近工作需要這樣的功能 如下圖 要在類似功能在android上實現

然后實現成這樣

這兩張圖來自博客:圖像校正—透視變換
可惜他用的是C/C++語言寫的調用opencv,我參考了下他寫的方案就想到了android 的jni方式加載opencv
所以就看到了這個:
jni調用 [安卓開發筆記一]Android開發配置opencv環境超詳細教程
首先如果你的對你的C/C++很有自信的話可以嘗試這個方式
但對於很久沒用過C和對OpenCV第一次了解的人來說,這種方式簡直寸步難行。
所以我就用了使用Java的方式來進行導入.
那么我們就首先做個准備工作吧:
1.安裝android studio (會來看這個文章的,這個我覺得大家都會裝了)
2.下載opencv sdk 我這里的版本是3.2 下載地址:http://opencv.org/releases.html
做好了這個那么就開始吧
首先我們看下opencv SDk的文件目錄

這里的有個sdk文件夾點進去,會看到下圖然后打開android studio

導入moudule,找到上面的java文件夾導入


然后打開



之后打開app 的 build.gradle 然后打開OpenCVLibrary320的build.gradle 有些地方需要一致
把app中的復制一下

覆蓋原來的openCVLibrary320中

接下來需要導入庫了,找到復制里面的所有文件夾

粘貼到工程的這個地方

然后別急,先去配置一些東西打開app的build.gradle,寫入下列代碼

然后構建下算是導入opencv4Java 了.
為了方便復制:
compile fileTree(dir: "$buildDir/native-libs",include: 'native-libs.jar')
task nativeLibsToJar(type: Jar,description:'create a jar archive of the native libs'){ destinationDir file("$buildDir/native-libs") baseName 'native-libs' from fileTree(dir: 'libs',include: '**/*.so') into 'lib/' } tasks.withType(JavaCompile){ compileTask -> compileTask.dependsOn(nativeLibsToJar) }
如果有問題這樣操作下

這邊有個opencv加載到android中的視頻教程地址需要掛個VPN : https://www.learn2crack.com/2016/03/setup-opencv-sdk-android-studio.html
有個開源項目可以使用看看:https://github.com/pqpo/SmartCropper
