2014-10-10 106 views
0

我有一个问题,这个梅托德OpenCV库的...OpenCV的Core.add错误

Imgproc.cvtColor(image , image , Imgproc.COLOR_RGBA2RGB); 

     Mat prob_fgd = new Mat(1, 1, CvType.CV_8U, 
       new Scalar(Imgproc.GC_PR_FGD)); 

     try { 
      Imgproc.grabCut(image, firstMask, rect, bgModel, fgModel, 3, 0); 
     } catch (Exception w) { 
      System.out.println(w.getMessage()); 
     } 

     Core.compare(firstMask, prob_fgd, firstMask, Core.CMP_EQ); 
     foreground = new Mat(image.size(), CvType.CV_8UC3, new Scalar(255, 255, 
       255)); 

     image.copyTo(foreground, firstMask); 

     Imgproc.resize(background, background, image.size()); 

     mask = new Mat(image.size(), CvType.CV_8UC1, new Scalar(100, 255, 
       100)); 

     foreground = overlay_colored_roi(foreground, new Scalar(100, 255, 100)); 

     Imgproc.cvtColor(foreground, mask, Imgproc.COLOR_BGR2GRAY); 

     Imgproc.threshold(mask, mask, 254, 255, Imgproc.THRESH_BINARY_INV); 

     mask.copyTo(ref); 

     vals = new Mat(1, 1, CvType.CV_8UC3, new Scalar(0.0)); 

     background.copyTo(dst); 

     background.setTo(vals, mask); 

,直到这里的代码工作。 这里停止。

日志说core.add的输入元素必须具有相同的大小,但background.size())foreground.size())dst.size())mask.size())是平等的。

Core.add(background, foreground, dst, mask); 

回答

0

他们还必须在代码后台初始化相同数量的信道。由于中没有显示我假设必须problem.Secondly尝试正常另外功能是没有面具,检查输出如果问题在完整代码后仍然存在,希望这有助于。