Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OpenCV和Java中检索R-CNN掩码_Java_Opencv - Fatal编程技术网

在OpenCV和Java中检索R-CNN掩码

在OpenCV和Java中检索R-CNN掩码,java,opencv,Java,Opencv,我正在用R-CNN检索一个被识别物体的面具 String modelWeights="frozen_inference_graph.pb"; String textGraph="mask_rcnn_inception_v2_coco_2018_01_28.pbtxt"; Net net = Dnn.readNetFromTensorflow(modelWeights, textGraph); net.setPreferableBackend(Dnn.DNN

我正在用R-CNN检索一个被识别物体的面具

String modelWeights="frozen_inference_graph.pb";
String textGraph="mask_rcnn_inception_v2_coco_2018_01_28.pbtxt";
Net net = Dnn.readNetFromTensorflow(modelWeights, textGraph);
net.setPreferableBackend(Dnn.DNN_BACKEND_OPENCV);
net.setPreferableTarget(Dnn.DNN_TARGET_CPU);`
对象的边界框已找到,可以显示

java.util.List<Mat> result = new java.util.ArrayList<Mat>(3);
java.util.List<java.lang.String> outBlobNames = new ArrayList();
outBlobNames.add("detection_out_final");
outBlobNames.add("detection_masks");
net.forward(result, outBlobNames);
要绘制遮罩,我使用以下代码:

   reshape.convertTo(reshape,CV_8UC3);
   List<MatOfPoint> contours = new ArrayList<>();
   Mat hierarchy = new Mat();
   Imgproc.findContours(reshape,contours,hierarchy,Imgproc.RETR_TREE,            Imgproc.CHAIN_APPROX_SIMPLE);
   for (int i = 0; i < contours.size(); i++) {
              Scalar color = new Scalar(125);
              Imgproc.drawContours(reshape, contours, i, color, 2, 1, hierarchy, 0, new Point());
   }
重塑.convertTo(重塑,CV_8UC3);
列表等高线=新的ArrayList();
Mat层次结构=新Mat();
Imgproc.findContours(重塑、轮廓、层次、Imgproc.RETR_树、Imgproc.CHAIN_近似、简单);
对于(int i=0;i
因此,我得到了14000多个轮廓,但没有正确的结果。这真的是正确的方法吗? 如何选择某个已找到的对象

   reshape.convertTo(reshape,CV_8UC3);
   List<MatOfPoint> contours = new ArrayList<>();
   Mat hierarchy = new Mat();
   Imgproc.findContours(reshape,contours,hierarchy,Imgproc.RETR_TREE,            Imgproc.CHAIN_APPROX_SIMPLE);
   for (int i = 0; i < contours.size(); i++) {
              Scalar color = new Scalar(125);
              Imgproc.drawContours(reshape, contours, i, color, 2, 1, hierarchy, 0, new Point());
   }