Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: alex_uam en 12 Junio 2013, 03:37 am



Título: OpenCV y reconocimiento de patrones
Publicado por: alex_uam en 12 Junio 2013, 03:37 am
 :oHola buenas dias, espero me puedan ayudar a despejar mis dudas sobre el uso de opencv, la verdad necesito ayuda de como realizar un proyecto, necesito un programa que clasifique objetos(circulos,cuadrados,triangulos y rectangulos), se que OpenCv me puede ayudar la duda esta en como utilizarlo, pues tengo la idea de como hacerlo.

Lo primero que pretendo es leer una foto que solo contenga una figura de las antes mencionadas, y que defina que figura es; creo eso se puede hacer por medio de una libreria de OpenCV pero no se cuál es, la idea que tengo es que identifique por medio de sus lados la figura que es , es decir, de un cuadrado debe localizarlo porque sus 4 lados seqn iguales, un triangulo que solo tenga 3 lados y un rectangulo que 2 de sus lados sean iguales y los otros 2 igual, y la circunferencia pues no tiene lados, la verdad tengo la idea pero no se como implementarlo, espero me puedan ayudar, GRACIAS!


Y esperando les guste mi proyecto ;-)


Título: Re: OpenCV y reconocimiento de patrones
Publicado por: engel lex en 12 Junio 2013, 03:49 am
con google conseguí

http://docs.opencv.org/modules/imgproc/doc/imgproc.html (http://docs.opencv.org/modules/imgproc/doc/imgproc.html)

de las que te instereasan "feature Detection"

como

http://docs.opencv.org/modules/imgproc/doc/feature_detection.html#houghcircles (http://docs.opencv.org/modules/imgproc/doc/feature_detection.html#houghcircles)

lee y dime si te sirven


Título: Re: OpenCV y reconocimiento de patrones
Publicado por: alex_uam en 12 Junio 2013, 04:52 am
ya rervise los codigos de los links que me diste y no pude compilar, estoy usando OpenCv y netbeans 7.0 mira el codigo de un ejemplo para encontrar circulos es el siguiente:

#include <cv.h>
#include <highgui.h>
#include <math.h>


using namespace cv;

int main(int argc, char** argv)
{
    Mat img, gray;
    if( argc != 2 && !(img=imread(argv[1], 1)).data)
        return -1;
    cvtColor(img, gray, CV_BGR2GRAY);
    // smooth it, otherwise a lot of false circles may be detected
    GaussianBlur( gray, gray, Size(9, 9), 2, 2 );
    vector<Vec3f> circles;
    HoughCircles(gray, circles, CV_HOUGH_GRADIENT,2, gray->rows/4, 200, 100 );
    for( size_t i = 0; i < circles.size(); i++ )
    {
         Point center(cvRound(circles
  • ), cvRound(circles[1]));
         int radius = cvRound(circles[2]);
         // draw the circle center
         circle( img, center, 3, Scalar(0,255,0), -1, 8, 0 );
         // draw the circle outline
         circle( img, center, radius, Scalar(0,0,255), 3, 8, 0 );
    }
    namedWindow( "circles", 1 );
    imshow( "circles", img );
    return 0;
}


y me manda un error en esta linea:

  HoughCircles(gray, circles, CV_HOUGH_GRADIENT,2, gray->rows/4, 200, 100 );

el cual dice: based operand of '->' has non-pointer type 'cv::Mat

espero me puedas ayudar!!


Título: Re: OpenCV y reconocimiento de patrones
Publicado por: engel lex en 12 Junio 2013, 06:02 am
te descargaste las librerias?

Citar
minDist – Minimum distance between the centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed.

colocale un valor manual y ve si anda... de todas formas revisa las otras funciones


Título: Re: OpenCV y reconocimiento de patrones
Publicado por: alex_uam en 13 Junio 2013, 22:44 pm
si las descargue todas,


Título: Re: OpenCV y reconocimiento de patrones
Publicado por: JJ91 en 24 Noviembre 2015, 19:05 pm
buenas algunos de ustedes trabajo con la extensión de OpcenCV que se llama CVBlob?? tengo dias tratando de instalarla en VS2015 y no he podido, cualquier información sería de mucha ayuda, gracias.