web-dev-qa-db-fra.com

Bibliothèques de traitement d'images C/C++ rapides multiplates-formes

Quelles sont certaines bibliothèques d'images multi-plateformes et hautes performances pour le traitement d'images (redimensionnement et recherche des histogrammes de couleur/teinte). Pas de gui nécessaire. Ceci est pour C/C++. 

Jusqu'à présent, j'ai cherché à 

  • OpenCV
  • GIL dans le cadre de Boost
  • Diable
  • CImg

Mes questions

  • Comment est la performance de ceux que j'ai énumérés ci-dessus
  • Quelles sont quelques autres bibliothèques

Votre contribution a beaucoup apprécié. 

26
The Unknown

OpenCV a d'assez bonnes performances. Cela devrait suffire dans la plupart des cas. 

Pour améliorer les performances, vous pouvez également utiliser OpenCV avec Intel IPP , qui est toutefois un produit commercial non libre. Si OpenCV détecte qu'IPP est installé, il l'utilisera dans la mesure du possible. 

En troisième option, vous pouvez utiliser directement IPP. IPP a été conçu avec un objectif de hautes performances (sur les architectures Intel). Il est optimisé pour utiliser les instructions intel SIMD. 

12
Dani van der Meer

imagemagick est assez populaire.

10
CiNN

N'oubliez pas de regarder CxImage - Je l'ai utilisé de manière professionnelle dans les applications de téléphonie mobile à déploiement graphique intensive déployées dans le monde entier, où il fonctionne parfaitement et regorge de fonctionnalités. Allez y faire un tour!

4
Johann Gerell

Il existe une bibliothèque de traitement d’images multi-plateformes open source simple et gratuite Simd . Comme suit de sa description:

Il fournit de nombreux algorithmes haute performance utiles pour le traitement d'images, tels que: conversion de format de pixel, mise à l'échelle et filtrage des images, extraction d'informations statistiques à partir d'images, détection de mouvement. 

Les algorithmes sont optimisés en utilisant différentes extensions de processeurs SIMD: SSE, SSE2.1, SSE4.1, SSE4.2, AVX, AVX2 et AVX-512 pour x86/x64, VMX (Altivec) et VSX (Power7) pour PowerPC, NEON pour ARM. 

3
ErmIg

Vous voudrez peut-être regarder IM . Il repose sur plusieurs plates-formes et prend en charge les formats de fichier d'image (modulaires), une variété de représentations d'image et un large éventail de transformations et d'opérateurs. Un outil graphique, IMLab , permettant de démontrer aux opérateurs de traitement d’images basé sur la bibliothèque de messagerie instantanée est également disponible.

2
RBerteig

Je ne pense pas avoir vu mieux en termes de fonctionnalités et de performances que HALCON de MVTec . Il fournit tous les algorithmes de vision par ordinateur et de traitement d’image prédéfinis, ainsi que de nombreux exemples concrets. La bibliothèque utilise le multithreading autant que les algorithmes le permettent et le GPU, le cas échéant. Il est très multi-plateforme et fournit un fantastique IDE qui vous permettra d'exporter votre code prototype (algorithme) vers de nombreux langages, notamment C, C++, C # et plus.

L'une des meilleures caractéristiques de cette bibliothèque est la façon dont elles traitent les objets de région. Il est simplement incroyablement intelligent et efficace à la fois pour le stockage et le traitement des masques. Malheureusement, OpenCV a beaucoup à apprendre.

Le principal problème de ce package est son prix (bêtement élevé), mais si vous travaillez sur un projet pour lequel vous n'avez pas besoin de déployer des licences d'exécution (SaaS, par exemple), optez pour cette solution. Ne cherchez pas plus loin si vous avez besoin de sérieux. traitement d'images et vision par ordinateur. 

2
Darien Pardinas

Il existe également VTK et ITK , avec une énorme quantité d'algorithmes de traitement d'images.

2
mem64k

Il y a aussi:

1
mloskot

Je maintiens vips , une bibliothèque de traitement d’images scientifique multi-plateforme C/C++ gratuite. Il est rapide et fonctionne bien sur de très grandes images. 

J'ai fait un très simple benchmark : charger un tif RVB de 5 000 x 5 000 pixels, rogner 100 pixels de chaque bord, réduire de 10%, accentuer et économiser à nouveau. Sur ce test trivial au moins, vips est plus de trois fois plus rapide que tout ce que j'ai essayé. 

1
jcupitt

ExactImage est une bibliothèque de traitement d'image rapide C++. Contrairement à de nombreux autres frameworks de bibliothèque , Il permet une utilisation dans plusieurs espaces colorimétriques et profondeurs de bits De manière native, ce qui entraîne une mémoire insuffisante et des exigences de calcul.

0
Biga

Nous avons utilisé Accusoft pendant un bon bout de temps, mais pour des raisons très spécifiques, nous sommes passés à LeadTools , qui n’existe que pour Windows. Accusoft possède une interface très claire et bien mieux définie que leadtools. . Les deux bibliothèques sont très robustes et prétendent lire plus ou moins tous les types de fichiers existants. Les deux ont également un support assez réactif.

0
RED SOFT ADAIR