需求
公司最近又有了一項新的需求:定位一張截圖里面的棋盤區(qū)域,并識別其中的黑白子數(shù)目禀崖。類似于下面這張圖:
一說圖片識別兴革,立馬想到了大名鼎鼎的opencv,正好趁此機會學習一波泊柬,前后折騰了三四天椎镣,總算初步入門,運用內(nèi)置的一些基礎算法實現(xiàn)了上述需求兽赁,在此整理記錄一下状答。
下載
官網(wǎng)地址:https://opencv.org/releases.html,選擇android pack刀崖。
下載解壓后目錄如下:
導入Android Studio
- 打開Android Studio新建項目
- 通過Import Module導入sdk目錄下的java文件夾惊科,修改該module下的build.gradle文件,配置同主module下的build.gradle文件亮钦,比如:
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
}
-
在主module的/src/main目錄下新建jniLibs文件夾馆截,將剛才下載的sdk/native/libs下的文件拷貝到jniLibs下,具體拷哪個根據(jù)自己的系統(tǒng)架構來定蜂莉,也可以都拷蜡娶,不過最后apk文件會很大。
主module依賴opencv module
dependencies {
//映穗。窖张。。
implementation project(':openCVLibrary341')
// 蚁滋。宿接。。
}
測試
在MainActivity的onCreate方法中調(diào)用下面的初始化方法:
private void staticLoadCVLibraries() {
boolean load = OpenCVLoader.initDebug();
if (load) {
Log.i("MainActivity", "Open CV Libraries loaded...");
} else {
Log.i("MainActivity", "Open CV Libraries not loaded...");
}
}
運行app辕录,觀察日志:
06-06 07:14:43.580 13503-13503/com.lxf.ndkdemo I/MainActivity: Open CV Libraries loaded...