List of usage examples for org.opencv.imgproc Imgproc matchShapes
public static double matchShapes(Mat contour1, Mat contour2, int method, double parameter)
From source file:detectiontest.Particle.java
public double distanceTo(Particle p) { double shapesDistance = Imgproc.matchShapes(contour, p.contour, Imgproc.CV_CONTOURS_MATCH_I3, 0); double areaDistance = area - p.area; return Math.sqrt(10 * shapesDistance + areaDistance * areaDistance); }
From source file:tisir.forms.ImageObjetForm.java
public void comparaisonContours() { Set<String> clesContoursObjetsImageCapturee = listContoursObjetsImageCapturee.keySet(); if (clesContoursObjetsImageCapturee.size() > 0) { System.out.println();// w ww . j av a 2 s . c o m System.out.println("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); double similariteMin = (double) 200; for (String cleContourImgCap : clesContoursObjetsImageCapturee) { System.out.println("\t -------------------------------------------"); //System.out.println("cleContourImgCap : " + cleContourImgCap ); //double similariteMin = (double)200; Mat matriceContoursObjetsImageCapturee = listContoursObjetsImageCapturee.get(cleContourImgCap); if (matriceContoursObjetsImageCapturee.size().width > 0 && matriceContoursObjetsImageCapturee.size().height > 0) { /*System.out.println("\t Taille de la matrice : " + matriceContoursObjetsImageCapturee.size().width +" X " + matriceContoursObjetsImageCapturee.size().height); System.out.println("\t Aire du contours : " + Imgproc.contourArea(matriceContoursObjetsImageCapturee)); System.out.println();*/ Set<String> clesContoursObjetsDossierTisirImage = listContoursObjetsDossierTisirImage.keySet(); if (clesContoursObjetsDossierTisirImage.size() > 0) { for (String cleContourImgDosTisir : clesContoursObjetsDossierTisirImage) { System.out.println("cleContourImgCap : " + cleContourImgCap); System.out.println( "\t Taille de la matrice : " + matriceContoursObjetsImageCapturee.size().width + " X " + matriceContoursObjetsImageCapturee.size().height); System.out.println("\t Aire du contours : " + Imgproc.contourArea(matriceContoursObjetsImageCapturee)); System.out.println("---"); System.out.println("cleContourImgDosTisir : " + cleContourImgDosTisir); Mat matriceContoursObjetsDossierTisirImage = listContoursObjetsDossierTisirImage .get(cleContourImgDosTisir); if (matriceContoursObjetsDossierTisirImage.size().width > 0 && matriceContoursObjetsDossierTisirImage.size().height > 0) { System.out.println("\t Taille de la matrice : " + matriceContoursObjetsImageCapturee.size().width + " X " + matriceContoursObjetsImageCapturee.size().height); System.out.println("\t Aire du contours : " + Imgproc.contourArea(matriceContoursObjetsDossierTisirImage)); //On cherche la similarit entre contoursObjetsImageCapturee et contoursObjetsDossierTisirImage double similariteDe2Matrices = Imgproc.matchShapes( matriceContoursObjetsImageCapturee, matriceContoursObjetsDossierTisirImage, Imgproc.CV_CONTOURS_MATCH_I3, 0); if (similariteMin > similariteDe2Matrices) { similariteMin = similariteDe2Matrices; } System.out.println("\t Similarit des matrices : " + cleContourImgCap + " et " + cleContourImgCap + " : \n\t" + similariteDe2Matrices); System.out.println("\t Similarit minimale : " + similariteMin); System.out.println("\t ----------------"); System.out.println(); } } } } } if (similariteMin <= 0.1) { resultat = "L'objet sur l'image capture est <br /> <em>RECYCLABLE</em> <br />"; } else { resultat = "L'objet sur l'image capture est <br /> <em>NON RECYCLABLE</em> <br />"; } } }