簡體   English   中英

適用於android-opencv應用程序的模板匹配

[英]Template Matching for android-opencv application

我已經使用OpenCV為Android開發了一種算法。 我需要找到先前圖像和當前幀之間的重疊。 因此,我從先前的圖像中制作了模板,以與當前幀匹配以制作照片。 這是完成拍攝的步驟。 (拍攝10張以上圖片)

這是我為發現重疊而開發的代碼。

public void overlapFinder(Mat inputFrame , Mat inputTemplate )

{

Mat mResult; 

  int resultWidth =  inputFrame.width() - inputTemplate.width() + 1; 

  int resultHeight = inputFrame.height() - inputTemplate.height() + 1;

  mResult = new Mat(resultHeight, resultWidth, CvType.CV_8U); 

  Imgproc.matchTemplate(inputFrame, inputTemplate, mResult,Imgproc.TM_CCORR_NORMED) ; 
  Core.MinMaxLocResult result = Core.minMaxLoc(mResult);

  @SuppressWarnings("unused")

  double maxVal = result.maxVal;

}

問題是,從先前圖像生成模板后調用“重疊函數”時,應用程序崩潰了。

有人可以幫我嗎?

謝謝

也許您確實確實需要先進行一些調試,但是在任何情況下,我都可以從您的代碼中看到值得檢查圖像大小的信息-似乎您的代碼假定模板始終小於輸入框架。

如果不是這樣,您將得到負的resultWidth和/或resultHeight ,這將使其崩潰。

另一件事-文檔建議結果類型應為CV_32FC1

PS-嘗試像這樣初始化結果:

mResult.create(resultHeight, resultWidth, CvType.CV_32FC1); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM