J'ai une exposition à MATLAB et une certaine exposition de base au traitement du signal et au traçage dans MATLAB ... mais je suis plus à l'aise avec C / C ++ que MATLAB parce que je travaille dans le traitement d'image avec OpenCV ... J'étais juste curieux: Existe-t-il une bibliothèque ou une plate-forme DSP (comme OpenCV pour le traitement d'image) pour effectuer le traitement du signal en C / C ++?
image-processing
signal-analysis
dsp-core
rotation_image
la source
la source
Réponses:
Octave est une boîte à outils mathématique et matricielle open source multiplateforme. Il dispose d'un interpréteur de ligne de commande destiné à être très similaire à MATLAB, mais une API C ++ est également disponible. Puisque vous faites référence au traitement du signal par opposition au traitement d'image, je suppose que vous parlez de traitement audio, vous devrez donc peut-être examiner les paquets "signal" et "audio" en octave (qui fournissent par exemple wavread). Gardez cependant à l'esprit que l'API est principalement conçue pour un usage interne dans la CLI d'octave et qu'elle est considérée comme non stable (c'est-à-dire que les liaisons peuvent changer). De plus, comme la bibliothèque n'est pas principalement destinée à être liée à, la documentation est pour le moins pauvre.
Alternativement, il existe également la bibliothèque scientifique GNU , qui n'est pas principalement destinée au traitement du signal, mais fournit des nombres complexes, des matrices, des fft, etc. Sous Windows, vous devez le compiler vous-même à l'aide de Cygwin.
la source
Avez-vous vérifié gnuradio ? Ils ont des blocs similaires à ceux utilisés dans le traitement du signal. Il y a quelques années, il y avait un grand nombre de blocs qui étaient déjà disponibles et d'autres en préparation, tous écrits en C ++. Les blocs ont été collés ensemble à l'aide de python, mais une implémentation C ++ complète était en préparation.
la source
La bibliothèque C ++ d' Integrated Performance Primitives (IPP) d' Intel comprend des composants de traitement du signal et de traitement d'image.
la source
Je ne l'ai pas utilisé, mais j'ai entendu de bonnes choses à propos de tatou ( http://arma.sourceforge.net/ ) pour les fonctionnalités de type matlab. Il en existe quelques autres, mais il semble que le tatou soit optimisé et activement développé.
Une partie de l'attrait d'octave, de matlab ou de python / numpy / scipy (parfois appelé "pylab") est la syntaxe simple avec un interpréteur interactif avec des tabulations terminées. Cela peut accélérer considérablement le développement.
Avec python / numpy, il est possible d'envelopper une dll avec un wrapper python et de l'utiliser à partir de l'interpréteur interactif. Je crois que cela peut aussi être fait avec matlab, mais je ne sais pas si cela peut être fait en octave. Soyez averti, cependant, que cela peut être légèrement compliqué en python / numpy bien que j'ai trouvé que les avantages valaient le coût dans le passé lorsque les performances sont critiques.
la source
Armadillo fait un excellent travail pour l'algèbre linéaire en C ++ (assez rapide via les modèles d'expression), et peut également être utilisé pour le traitement du signal. En plus de prendre en charge les matrices avec différents types d'éléments, il prend en charge les tenseurs (cubes) de troisième ordre, qui sont utiles dans le traitement d'image.
Il existe également une bibliothèque C ++ connexe connue sous le nom d' IT ++ , qui n'est pas aussi rapide qu'Armadillo, mais elle a plus de classes prédéfinies orientées vers le traitement du signal et la communication.
la source
JUCE est une belle bibliothèque de plateforme audio C ++. Vous pouvez créer des VST assez facilement si vous voulez avoir rapidement un tampon d'E / S sur votre carte son sur lequel vous pouvez travailler. De plus, vous pouvez ensuite l'utiliser comme un VST multiplateforme si vous le souhaitez.
la source