Шаблон, соответствующий нескольким объектам в java

#java #opencv #object-detection #intellij-14 #template-matching

Вопрос:

Я использую OpenCV для сопоставления шаблонов , следуя коду, который отвечает мне только на одно местоположение обнаруженного объекта на изображении . Но я хочу посмотреть, есть ли на изображении другой шаблон, и, наконец, сгенерировать список обнаруженных объектов по их местоположению на фотографии .

         Mat source=null;
        Mat template=null;
        String filePath="C:\Users\Mohamad Jahangiri\IdeaProjects\WiringProject\src\sample\Image\" ;
        String templateFilePath="C:\Users\Mohamad Jahangiri\IdeaProjects\WiringProject\src\sample\templates\" ;
        //Load image file
        source=Imgcodecs.imread(filePath "1.jpg");
        template=Imgcodecs.imread(templateFilePath "key1.jpg");

        Mat outputImage=new Mat();
        int machMethod=Imgproc.TM_CCOEFF;
        //Template matching method
       Imgproc.matchTemplate(source, template, outputImage, machMethod);


        Core.MinMaxLocResult mmr = Core.minMaxLoc(outputImage);
        Point matchLoc=mmr.maxLoc;
        //Draw rectangle on result image
        System.out.println(" template.rows() "  template.rows()   "");
        Imgproc.rectangle(source, matchLoc, new Point(matchLoc.x   template.cols(),
                matchLoc.y   template.rows()), new Scalar(255, 255, 255));

        System.out.println("( "  matchLoc.x   " , "  matchLoc.y );

        Imgcodecs.imwrite(filePath "sonuc.jpg", source);
        System.out.println("Complated.");



 

И мне интересно знать, есть ли лучшая библиотека для обнаружения таких объектов, как простой квадрат и прямая метка