[英]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.