GithubHelp home page GithubHelp logo

webcam_circles's Introduction

Webcam_circles

Circle detection from online webcam images

Transformada de Hough

Aquesta eina de processament de la imagte permet reconèixer figures que tenen una representació matemàtica; alguns exemples podrien ser circumferències, línies rectes o rectangles.

A partir de la imatge es poden trobar punts que es detectin com a vores d'un objecte; a partir d'aquesta primera detecció, s'ha de poder definir la quantitat de punts que formen part d'una forma geomètrica. Només analitzant el punts trobats, podríem tenir múltiples solucions de la forma geòmetrica que podem trobar (per exemple en el cas de les rectes).

Per tal d'evitar aquests errors, la transformada de Hough analitza les dades des d'un punt de vista paramètric (amb dos paràmetres, r i O), amb els quals obtindrem curves per a cada punt considerat com a vora d'un objecte. Per a cada curva que s'obté, es representa en un mapa , i es van acumulant aquestes curves. Al final s'obté un mapa amb totes les curves;Els pics resultants del mapa a partir de l'acumulació ens permetràn determinar el tipus de forma geomètrica de la imatge. a A partir de la modificació del rang dinàmic i del contrast de la imatge, es poden observar zones o patrons d'informació que permeten evaluar, per exemple, la quantitat de segments que es troben en una figura.

Un cop es detecta la figura i la quantitat de segments, es treu la imformació del mapa de Hough i es torna a recomposar. Al recomposar-ho, obtindrem la figura geomètrica.

Canvis de paràmetres

A continuació s'explicaran els paràmetres definits el seu efecte en la imatge resultant:

GAUSSIAN_BLUR_SIZE - Amb aquest paràmetre definim l'amplada de la matriu Gaussiana que serveix posteriorment per a la reducció del soroll de la imatge (smoothing). Al baixar el seu valor, observem que el sistema és més sensible al soroll, la qual cosa provoca la detecció de cercles inexistents.

HOUGH_ACCUM_RESOLUTION - determina la resolució del acumulador. Al canviar de valor, aquest no detecta cercles.

MIN_CIRCLE_DIST - Especifica la distància mínima entre cercles a detectar. Ha de tenir un valor mitjà, degut a que un número molt gran pot prescindir de la detecció d'alguns cercles, mentre que un nombre petit podria ajuntar dos cercles en un.

CANNY_EDGE_TH - Determina el treshold per un operador anomenat Canny, que permet la detecció de vores. Veiem que el valor és molt alt al principi; si el baixem per complet, observem que es detecten a la imatge múltiples cercles inexistents. Això és degut a que al baixar el valor del treshold de manera abrupta, apareguin inherentment fragments de vores a la sortida que poden donar a equivocació en la detecció de vores.

MIN_RADIUS - Indica el radi mínim del cercle a detectar. Aquest valor anirà definit segons les necessitats de l'aplicació.

MAX_RADIUS - Indica el radi màxim del cercle a detectar. Aquest valor anirà definit segons les necessitats de l'aplicació.

Referències

Hough Transform http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm

Canny Edge Detector http://homepages.inf.ed.ac.uk/rbf/HIPR2/canny.htm

Smoothing Images https://docs.opencv.org/3.3.1/dc/dd3/tutorial_gausian_median_blur_bilateral_filter.html

OpenCV Hough Circle Transform https://docs.opencv.org/3.4/d3/de5/tutorial_js_houghcircles.html

webcam_circles's People

Contributors

andreucm avatar carlosjoserg avatar martygp95 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.