1. 程式人生 > >Android-影象識別專案OpenCV(4):開發思路以及問題

Android-影象識別專案OpenCV(4):開發思路以及問題


六、開發思路

  搭建好環境和做好各種準備功夫,接下來就開始我們的開發之路。

  首先,我們先檢視一下官方教程文件,看有沒有我們需要的例子。我找到了一個二維影象識別的例子:

  http://www.cnblogs.com/http://www.cnblogs.com/_images/Featur_FlannMatcher_Result.jpg

  這個教程是用C++寫的,用計算特徵點來比對兩幅影象。如果我們用這個演算法可得到特徵點的匹配:

  http://www.cnblogs.com/http://www.cnblogs.com/_images/Feature_FlannMatcher_Keypoints_Result.jpg

  這兩幅圖共有22個特徵點,我們到時就可用多於多少個特徵點便認為兩幅圖裡的產品為同一個產品來判定了。

遇到問題

上面的程式碼例子是用C++寫的,當我打算用JNI進行呼叫的時候,卻發現了一個大問題。

  例子中的步驟一用到SURF演算法來識別圖中的特徵點:  

  //-- Step 1: Detect the keypoints using SURF Detector
  int minHessian = 400;

  SurfFeatureDetector detector( minHessian );

  std::vector<KeyPoint> keypoints_1, keypoints_2;

  detector.detect( img_1, keypoints_1 );
  detector.detect( img_2, keypoints_2 );

  但是,在Android SDK的JNI庫檔案裡面是不包含SURF演算法的。在之後的兩天裡,我Google了無數個關鍵詞,還是找不到如何在Android中使用這個演算法的方法。後來,我在官方論壇、Google groups和StackOverflow上都進行了提問。

解決方法

在發出問題的第二天,我在StackOverflow上收到了某位外國友人的答覆,感謝他:

  他提醒我用另外一個包含在Android SDK的類ORB來解決這個問題,我查了一下,確實有這個類,並且用法也是差不多的。另外,外國友人說這個類的執行效率在手機上還高一點。吐槽下,OpenCV4Android的支援確實差了一點,教程文件基本沒有,基本上是靠硬啃API Reference來開發。

相關推薦

Android-影象識別專案OpenCV4開發思路以及問題

六、開發思路   搭建好環境和做好各種準備功夫,接下來就開始我們的開發之路。   首先,我們先檢視一下官方教程文件,看有沒有我們需要的例子。我找到了一個二維影象識別的例子:      這個教程是用C++寫的,用計算特徵點來比對兩幅影象。如果我們用這個演算法可得到特徵點的匹

Android-影象識別專案OpenCV2執行官方例子中的臉部識別程式

3、下載OpenCV4Android官方SDK並進行匯入   SDK下載地址:http://pt.sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fopencvlibrary%2Fopencv-android%2F2.4.2%2

Python 影象處理 OpenCV 4影象算數運算以及修改顏色空間

![](https://cdn.geekdigging.com/opencv/opencv_header.png) 前文傳送門: [「Python 影象處理 OpenCV (1):入門」](https://www.geekdigging.com/2020/05/17/5513454552/) [「Pyt

JAVA伴我行——專案開發模型,敏捷開發和瀑布模型的結合

在專案的開發過程中,我們或多或少都會遵循一定的模式。最常見的就是瀑布模型了(也許平時沒有注意,但你確實在遵循這個模型)。 瀑布模型的典型表現就是遵循以下順序:需求調研/分析,詳細設計/概要設計,編碼階段,測試階段,整體優化/執行維護。 遵循瀑布模型的好處是我們能夠嚴格按照軟

OpenCV---如何將彩色影象分通道輸出4

附程式碼如下: import cv2 as cv import numpy as np def ch(): src = cv.imread("D:/matplotlib/0.jpg") h,w,ch = np.shape(src) bgr = cv.split(src)

機器人視覺專案視覺檢測識別+機器人跟隨4

1. 將手動畫框給小強機器人行人跟蹤的程式碼用opencv行人檢測的demo替換,實現自動檢測。在網上下載了一個XML訓練模型,並修改了程式碼, 在catkin_make這個工作空間時出現問題,一直報錯: [email protected]:~/catkin_tra

Django 專案總結4- 使用者中心個人資訊

使用者中心個人資訊 在該頁面會展示使用者名稱,手機號,郵箱,郵箱驗證狀態 修改使用者模型類,增加郵箱是否驗證狀態 進入該頁面時,前端向後端請求資料; 後端進行序列化把資料返回; 在檢視加上 permission_classes 許

vue2.0專案實戰4生命週期和鉤子函式詳解

最近的專案都使用vue2.0來開發,不得不說,vue真的非常好用,大大減少了專案的開發週期。在踩坑的過程中,因為對vue的生命週期不是特別瞭解,所以有時候會在幾個鉤子函式裡做一些事情,什麼時候做,在哪個函式裡做,我們不清楚。 下面來總結一下vue的生命週期。 vue生命週期簡介 咱們從上圖可以很明顯的看出

Android多執行緒研究4——從一道面試題說起

有一道這樣的面試題:開啟一個子執行緒和主執行緒同時執行,子執行緒輸出10次後接著主執行緒輸出100次,如此反覆50次。先看下面程式碼:package com.maso.test; /** * * @author Administrator * 兩個執行緒,其中是一個

sEMG專案總結4康復手上位機系統

康復手上位機系統 目錄 1串列埠通訊 %%主函式:註釋說明和視窗初始化 function varargout = serial_communication2(varargin) gui_Singleton = 1; gui_State

tensorflow學習4儲存模型Saver.save()的引數命名機制以及restore並建立手寫字型識別引擎

前言 上一章中我們講到如何訓練一個網路,點選檢視部落格,這章我們來講tensorflow在儲存網路的時候是怎麼給不同的引數命名的,以及怎麼將儲存的引數重新restore到重構的網路結構中的。最後利用重構的網路去預測一張包含數字(0-9)的圖片(任意畫素)。

Project 2013專案管理教程4設定資源

任務的完成,離不開人力、物力、財力。這反映到Project中,就是資源,resource。一般的,在繫結任何和資源之前,首先要做的,是明確這個專案總共有哪些資源,這些資源的特性是什麼。 首先,切換到資源檢視。VIEW-->resourcesheet。 接下來,根據

Android音訊開發4如何儲存和解析wav檔案

無論是文字、影象還是聲音,都必須以一定的格式來組織和儲存起來,這樣播放器才知道以怎樣的方式去解析這一段資料,例如,對於原始的影象資料,我們常見的格式有 YUV、Bitmap,而對於音訊來說,最簡單常見的格式就是 wav 格式了。 wav 格式,與 bitmap 一樣,都是

學習android 筆記4如何獲取螢幕的相關屬性以及dp 、dip、dpi 、px的概念

<span style="font-size:24px;">DisplayMetrics dm = new DisplayMetrics(); getWindowManager().g

實習過程學習4java跨專案訪問

要從一個專案訪問另一個專案的方法或者頁面有幾種方式:1、讓另一個專案打包成一個jar包,然後將jar包作為當前專案的一個依賴包,這樣就可以在當前專案裡直接呼叫另外一個專案的方法了。 2、在另外一個專案正在執行的情況下,通過介面地址從當前專案向另外一個專案傳送請求,以實現

python-opencv9影象的形態學操作

開運算(image)=膨脹(腐蝕(image)) dst=cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel) 閉運算(image)=腐蝕(膨脹(image)) dst=cv2.morphologyEx(src,cv2.MORPH_CL

遊戲程式設計入門4繪製圖形影象

除了經典的向量圖形遊戲之外,遊戲開發人員都使用圖形影象來在視覺上展示遊戲的圖形部分。本文將介紹如何載入和顯示圖形影象。 本章內容包括: 點陣圖影象的基礎知識以及為什麼它們在遊戲程式設計中如此重要 點陣圖影象的內部工作方式 如何開發在遊戲中使用的通用點陣

python-opencv8影象的腐蝕與膨脹

語法: dst=cv2.erode(src,kernel,iterations) dst=cv2.dilate(src,kernel,iterations) kernel:卷積核     kernel=np.ones((5,5),np.uint8) 程式示例: im

Android4Android Studio zxing掃碼

zxing私人定製之一 初試掃碼 引:第一次接觸二維碼,當然二維碼原理懂得不多!那又何妨?有強大的zxing! zxing程式碼真的寫的很不錯!支援各種平臺,程式碼架構清晰…大神之作! 結構目錄介紹 當然第一時間把整專案下載回來.很大!整個專案幾乎100+M.但是對於我們來說,用到的就

caffe的python介面學習4mnist例項---手寫數字識別

轉載原文地址:http://www.cnblogs.com/denny402/p/5684431.html 深度學習的第一個例項一般都是mnist,只要這個例子完全弄懂了,其它的就是舉一反三的事了。由於篇幅原因,本文不具體介紹配置檔案裡面每個引數的具體函義,如果想弄明白