【问题标题】:templateMatching mattoBitmap opencv for android模板匹配 mattoBitmap opencv for android
【发布时间】:2012-12-03 17:27:48
【问题描述】:

我正在尝试在 Android 上使用 OpenCV 和 Java(不是本机)创建模板匹配函数。

我的问题是显示图像。 ma​​ttoBitmap 类有效(在 Java 中),但如果我想转换模板匹配函数的结果,我会在调用 Utils.matToBitmap 函数时得到一个 FATAL EXCEPTION。

下面是相关代码:

void TemplateMatch() {

    mFind = new Mat(256, 192, CvType.CV_8UC4);
    Input = new Mat(256, 192, CvType.CV_8UC4);

    mResult = new Mat(217, 153, CvType.CV_8UC4); // (bmp2 size is 40)

    Utils.bitmapToMat(bmp2, mFind);
    Utils.bitmapToMat(bmp1, Input);

    Imgproc.matchTemplate(mFind, Input, mResult, Imgproc.TM_SQDIFF);

    bmp3 = Bitmap.createBitmap(mResult.cols(), mResult.rows(), conf);

    Utils.matToBitmap(mResult, bmp3);

    iv2.setImageBitmap(bmp3);

}

据我所知,mResult 的大小在创建时并不重要,因为它是由模板匹配函数随后设置的。

在将 mResult mat 转换为 bmp 之前,是否需要将其转换为某种东西?

我需要先将 bmp 转换成某种东西,然后才能将 mat 转换成它吗?

【问题讨论】:

    标签: java android templates opencv fatal-error


    【解决方案1】:

    您需要将位图转换为 RGBA 格式,反之亦然。也许你需要看看这里:https://groups.google.com/group/android-opencv/ 和这里:Java openCV - Error while conevrting Bitmap to Mat

    【讨论】:

    • 我确实发现存在转换问题,但我不知道要转换什么
    • 谢谢,第二个链接对我没有帮助,我已经包含了库,我可以将位图转换为 mat。我也可以将 mat 转换为位图,而不是从“matchTemplate”接收到的特定类型。 (收到的类型是 5,当我像其他位图一样将其转换为 24 时,我得到一张黑色照片)。
    【解决方案2】:

    问题是matchTemplate()结果是一个浮点单通道Mat 所以我需要标准化 mResult 向量。 解决办法是:

    void TemplateMatch(){

    mFind=new Mat(256, 192, CvType.CV_8UC4); 
    Input = new Mat(256, 192, CvType.CV_8UC4); 
    
    Mat mResult8u = new Mat(256, 192, CvType.CV_8UC4); 
    
    mResult = new Mat(217, 153, CvType.CV_8UC4); 
    
    Utils.bitmapToMat(bmp2, mFind);
    Utils.bitmapToMat(bmp1, Input);
    
    
    Imgproc.matchTemplate(mFind, Input, mResult, Imgproc.TM_SQDIFF) ;
    bmp3= Bitmap.createBitmap(mResult.cols(),  mResult.rows(),Bitmap.Config.ARGB_8888);
    Core.normalize(mResult, mResult8u, 0, 255, Core.NORM_MINMAX, CvType.CV_8U);
    Utils.matToBitmap(mResult8u, bmp3);
    iv2.setImageBitmap(bmp3);
    
    }
    

    【讨论】:

      猜你喜欢
      • 2015-04-20
      • 1970-01-01
      • 2018-10-02
      • 2015-07-22
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多