View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Processing : discussion intérêt javacv versus librairie openCv pour Processing

  • La librairie openCV pour Processing est une bonne approche d'openCV sous Processing, mais :
    • cette librairie n'a pas l'air d'être maintenue depuis 2008 alors que la librairie openCV évolue rapidement
    • cette librairie ne donne pas facilement accès aux fonctions d'OpenCV ce qui est frustrant si on souhaite réaliser des traitements complexes
  • La librairie javacv implémente toutes les fonctions de la librairie OpenCV en Java :
    • ce qui permet de l'utiliser simplement avec Processing et d'appeler les fonctions openCV directement dans le code Processing
    • cette librairie est actualisée et récente (version 2.3.1)
    • cette librairie permet dès lors d'envisager la création d'une véritable librairie openCV pour Processing qui toute en laissant accès aux fonctions propres d'openCV, fournirait des fonctions de base pour interfacer les objets openCV et Processing...
  • Certains pourraient douter de l'intérêt d'utiliser OpenCV dans Processing : quel intérêt d'utiliser une librairie de traitement d'Image dans une interface de graphisme et traitement d'image ?
    • De fait, certaines fonctions d'OpenCV recoupent les fonctions de Processing, mais il s'agit de fonctions de traitement d'image de "bas niveau" (modification des niveaux de couleurs, etc...)
    • En fait, OpenCV propose surtout de nombreuses fonctions natives très élaborées qui sont exécutées rapidement en C/C++ alors qu'une exécution d'un code similaire dans Processing serait beaucoup plus lent... Et ces fonctions n'existent tout simplement pas dans Processing à ce jour.
    • A l'inverse, les fonctions d'OpenCV paraîtront lourdes à prendre en main. OpenCV, c'est une véritable jungle de fonctions dans laquelle il est difficile de s'y retrouver de prime abord... Il faut du temps, de la rigueur, des connaissances minimales en traitement d'image...
    • D'où l'intérêt évident de combiner les 2 : utiliser la simplicité de Processing pour créer des fonctions simplifiées basées sur les fonctions OpenCV, de manière à ce que l'utilisation finale soit transparente pour l'utilisateur Processing. Par exemple, l'application d'une détection de contour par algorithme de Canny pourra se faire depuis Processing par une simple fonction Canny(monImage);, ladite fonction s'occupant de gérer toute la complexité de mise en oeuvre des fonctions OpenCV.
    • Dans le même temps, une telle combinaison d'OpenCV et Processing permet d'accéder au besoin aux fonctions OpenCV natives dans Processing ce qui laisse une totale liberté d'adaptation aux codeurs les plus avancés...