Estoy desarrollando un proyecto usando java para identificar componentes usando el paquete opencv pero soy nuevo en javacv y solo quiero saber cómo identificar rectángulos en una imagen fuente particular, por favor puede alguna persona de experiencia dar alguna línea de guía básica para archivar este tarea. Intento usar la coincidencia de plantilla aquí pero puede identificar el tamaño exacto del rectángulo solamente. Pero en mi caso, ¿necesito identificar el rectángulo de longitud variable?Cómo identificar cuadrado o un rectángulo con longitudes y ancho variable mediante el uso de javacv?
import java.util.Arrays;
import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;
public class TestingTemplate {
public static void main(String[] args) {
//Original Image
IplImage src = cvLoadImage("src\\lena.jpg",0);
//Template Image
IplImage tmp = cvLoadImage("src\\those_eyes.jpg",0);
//The Correlation Image Result
IplImage result = cvCreateImage(cvSize(src.width()-tmp.width()+1, src.height()-tmp.height()+1), IPL_DEPTH_32F, 1);
//Init our new Image
cvZero(result);
cvMatchTemplate(src, tmp, result, CV_TM_CCORR_NORMED);
double[] min_val = new double[2];
double[] max_val = new double[2];
//Where are located our max and min correlation points
CvPoint minLoc = new CvPoint();
CvPoint maxLoc = new CvPoint();
cvMinMaxLoc(result, min_val, max_val, minLoc, maxLoc, null); //the las null it's for
optional mask mat()
System.out.println(Arrays.toString(min_val)); //Min Score
System.out.println(Arrays.toString(max_val)); //Max Score
CvPoint point = new CvPoint();
point.x(maxLoc.x()+tmp.width());
point.y(maxLoc.y()+tmp.height());
cvRectangle(src, maxLoc, point, CvScalar.WHITE, 2, 8, 0); //Draw the rectangule result in original img.
cvShowImage("Lena Image", src);
cvWaitKey(0);
//Release
cvReleaseImage(src);
cvReleaseImage(tmp);
cvReleaseImage(result);
}
}
Por favor alguien puede ayudar a lograr esto
cuadrados? Los escuderos son más duros. –
Dave: ¿Podrías proporcionar alguna línea del gremio para archivar esto> –
¿Es squire o SQUARE? si no, ¿qué es escudero? google dice que es una armadura de soldados. ¿Es eso lo que quieres? Mejor agregar una imagen. –