如何使用Android相机应用程序拍摄照片并将OpenCV与其他图像进行比较?

时间:2019-07-01 20:31:37

标签: android-studio opencv kotlin

我正在使用相机意图使用Android相机。从那里,我希望能够拍摄一张照片,并将其与Android Studio中创建的图像资产进行比较,并从本质上找到它最接近的“模板”并从那里进行其他操作。现在,我只想将拍摄的图片与一个模板进行比较,以使事情变得更容易并首先开始工作。

我已经尝试过弄乱Mats和matchTemplate了,我正要拍张照片,但是之后会崩溃。我曾尝试寻找其他建议,但似乎没有找到与我所寻找的东西完全匹配的东西。此外,我还有很多其他搜索建议,例如将模板图像获取为位图

这是我到目前为止所拥有的。

//Get template from where it’s saved in project
val Template = BitmapFactory.decodeResource(getResources(),R.mipmap.template) 
var TemplateMat = Mat(Template.width, Template.height, CvType.CV_8U)

//get picture taken from camera 
val bmp = data?.extras?.get("data") as Bitmap 
val newbmp = Bitmap.createScaledBitmap(bmp, 200, 200, false) 
var detectedMat = Mat(newbmp.width, newbmp.height,CvType.CV_8U) 

bitmapToMat(newbmp, detectedMat)
bitmapToMat(Template, TemplateMat) 

var result = Mat(TemplateMat.width(),TemplateMat.height(),CvType.CV_8U)
matchTemplate(detectedMat, TemplateMat,result, TM_CCOEFF_NORMED)
normalize(result,result,0.0,1.0, NORM_MINMAX,-1)

val minMax = minMaxLoc(result) 
val matchLoc = minMax.maxLoc

//If it finds a match, {do something}

0 个答案:

没有答案