2013-10-10 2 views
0

Я пытаюсь разработать шаблон, соответствующий андроидному приложению, я использую предварительный просмотр API-камеры; как я могу получить изображение шаблона (обрезать его) и сохранить его? мне нужна база данных для сохранения изображений шаблонов? или просто сохранить их в определенной папке?OpenCV с шаблоном для Android

ответ

1

Вы можете следовать этому пути, он работает:

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); 
Смежные вопросы