簡體   English   中英

具有Android模板匹配功能的OpenCV

[英]OpenCV with Android Template Matching

我正在嘗試開發一個與Android應用程序匹配的模板,我正在使用Camera API預覽; 如何獲取(裁剪)模板圖像並保存? 我需要數據庫來保存模板圖像嗎? 或只是將它們保存到特定文件夾?

您可以按照以下方式進行操作:

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();


Mat img = Highgui.imread(baseDir + "/mediaAppPhotos/img2.png");
Mat templ = Highgui.imread(baseDir+ "/mediaAppPhotos/chars.png");


int result_cols = img.cols() - templ.cols() + 1;
int result_rows = img.rows() - templ.rows() + 1;
Mat result = new Mat(result_cols, result_rows, CvType.CV_32FC1);

// / Do the Matching and Normalize
Imgproc.matchTemplate(img, templ, result, Imgproc.TM_CCOEFF);
Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1,
        new Mat());

// / Localizing the best match with minMaxLoc
MinMaxLocResult mmr = Core.minMaxLoc(result);

Point matchLoc;
if (Imgproc.TM_CCOEFF == Imgproc.TM_SQDIFF
        || Imgproc.TM_CCOEFF == Imgproc.TM_SQDIFF_NORMED) {
    matchLoc = mmr.minLoc;
} else {
    matchLoc = mmr.maxLoc;
}

// / Show me what you got
Core.rectangle(
        img,
        matchLoc,
        new Point(matchLoc.x + templ.cols(), matchLoc.y
                + templ.rows()), new Scalar(0, 255, 0));

// Save the visualized detection.
System.out.println("Writing " + baseDir+ "/mediaAppPhotos/result.png");
Highgui.imwrite(baseDir + "/mediaAppPhotos/result.png", img);

暫無
暫無

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

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