#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.");
И мне интересно знать, есть ли лучшая библиотека для обнаружения таких объектов, как простой квадрат и прямая метка