Hello les gens !
Pour manipuler les images 2D en ligne de commande, on connait tous le magnifique programme convert proposé dans la boite à outils ImageMagick [1]. Dans un genre très (très) proche, il y a aussi gm de la boite à outils GraphicsMagick [2].
Je vous propose aujourd'hui de découvrir inrcast [3], un outil open-source pour manipuler les données images 2D, 3D, et les vidéos. Quel intérêt me demanderez-vous ? Il y a quelques différences importantes avec les outils cités précédemment :
-
inrcast permet de gérer naturellement des listes d'images volumiques multispectrales, donc in-fine de manipuler des images à grande dimensionnalité (par exemple, des séquences d'images médicales volumiques qu'on peut trouver en IRM de perfusion, ou encore des séquences d'images avec plus de 3 canaux qu'on peut trouver en imagerie satellitaire méteo par exemple), ce que ne permet pas ImageMagick. Bon bien sûr, les images couleurs 2D rentrent aussi dans ce cadre.
Du coup, inrcast est très pratique pour décomposer/isoler les frames d'une vidéo ou les slices d'un volume en plusieurs fichiers images 2D, ou au contraire de les rassembler dans des fichiers volumiques.
inrcast est typé, c'est à dire qu'il sait gérer les différents types de stockage des valeurs de pixels (unsigned char, short, float, etc...). On peut par exemple l'utiliser pour convertir une image 3D volumique en format Analyze à valeurs flottantes en un format Tiff multipage 16 bits. L'utilisateur a le choix de spécifier le type de pixel d'entrée à considérer et le type de sortie. Assez pratique aussi quand on reçoit des images dans un format un peu bizarre et qu'on veut vite les remettre dans un format avec lequel on a l'habitude de travailler.
incast comprend un module de visualisation/exploration d'images simple et pratique à utiliser. On peut zoomer et se balader dans une image 2D/3D ou une suite d'image assez facilement, en utilisant la souris et/ou le clavier. C'est un peu comme display de ImageMagick, mais pour des images de dimensions plus grandes.
- inrcast sait lire les fichiers d'objets 3D .off (format GeomView). Oui ça sert pas à grand chose, mais il fallait le dire, c'est bonus !
- ImageMagick : http://www.imagemagick.org/
- GraphicsMagick : http://www.graphicsmagick.org/
- Inrcast : http://cimg.sourceforge.net/inrcast/
- Medcon : http://xmedcon.sourceforge.net/
- FFMPEG : http://ffmpeg.mplayerhq.hu/
Il faut souligner que inrcast peut s'appuyer en partie sur ImageMagick ou GraphicsMagick si ceux-ci sont installés, mais aussi sur XMedcon [4] (pour lire les images au format dicom) ou encore FFMPEG [5] (pour lire/écrire les séquences vidéos).
Bref, c'est un programme potentiellement assez pratique pour les traiteurs d'images de tout poils. C'est une version 0.1, donc encore assez expérimentale mais tout à fait fonctionnelle. A noter que la compilation des sources sont dispo met *beaucoup* de temps et demande *beaucoup* de mémoire si les optimisations sont activées.
N'hésitez pas à donner des retours d'utilisation ou des suggestions.
(Je cherche quelqu'un qui saurait faire un paquet pour inrcast en passant :) )
** Références :
# *WorkBench*
Posté par Prae . Évalué à 4.
ps: il sait gérer le JPEG2000 en input et output ?
[^] # Re: *WorkBench*
Posté par Prae . Évalué à 4.
Imagemagick fait semblant de les gérer (en fait, il génère des images 16 bits)
[^] # Re: *WorkBench*
Posté par David Tschumperlé (site web personnel) . Évalué à 4.
[^] # Re: *WorkBench*
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
Il me semble que seul le cinéma numérique utilise le jpeg2000.
Quel serait le statu d'un logiciel libre gérant un tel format ?
"La première sécurité est la liberté"
[^] # Re: *WorkBench*
Posté par BAud (site web personnel) . Évalué à 3.
Les brevets logiciels étant encore illégaux à ce jour en Europe, cela serait un logiciel libre. En revanche, pour les US, cela posant un petit souci, cela aboutirait sans doute dans une section non-free (non-us auparavant dans Debian en fait) des distributions lorsque le paquet est compilé avec l'option supportant ce format breveté (un peu comme ffmpeg, VLC, mplayer et consors lorsqu'ils ont certaines options disponibles).
Le code source est lui libre bien sûr (bienvenue dans le casse-tête des droits des marques et des brevets lorsqu'ils s'ajoutent au droit d'auteur qui n'est dans certain cas pas simple non plus).
[^] # Re: *WorkBench*
Posté par Prae . Évalué à 2.
Le JPEG2000, certes, à des brevets, mais les personnes en possédant ont refusé toutes royalties ou demandes diverses dessus:
« Part 1, Core coding system (intended as royalty and license-fee free - NB NOT patent-free) »
LIBJPEG possède un codec J2C input/output pour cela.
Dans pas mal de produit dans le secteur (digital cinema), cette librairie est utilisée et - si mes souvenirs sont exactes - elle est même recommandée dans les spécifications techniques.
[^] # Re: *WorkBench*
Posté par Nicolas Boulay (site web personnel) . Évalué à 4.
"La première sécurité est la liberté"
[^] # Re: *WorkBench*
Posté par Prae . Évalué à 2.
http://www.jpeg.org/faq.phtml?action=show_answer&questio(...)
Normalement, il y a eu un deal (contrat je crois, j'ai un doute) pour que les gens qui font partie du JPEG(2000) Consortium ne casse pas les bonbons avec cela;
D'un autre côté, je vois mal une boite de software changer sa politique à ce niveau là au vue des intêrets que le Digital Cinema en fait.
(en gros, je doute que l'un des boys du consortium est envie de se mettre à dos le consortium + les plus grosses majors US Cinema ... c'est pas dans leurs intêret)
[^] # Re: *WorkBench*
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
Sachant évidement, que même le groupe JPEG ne garantit pas qu'il n'y ai pas de brevets qui trainent quelques part.
"La première sécurité est la liberté"
[^] # Re: *WorkBench*
Posté par benoar . Évalué à 2.
[^] # Re: *WorkBench*
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
Cela explique aussi une partie des ennuis sur le navigateur web et l'utilisation de flash qui est quand même pas terrible.
Les DRM ne sont pas la seul composante des problèmes, les brevets en posent aussi beaucoup.
"La première sécurité est la liberté"
# Rapport avec les travaux précédents ?
Posté par Ontologia (site web personnel) . Évalué à 3.
Quel le rapport de inrcast avec CImg, GreyCstoration, etc... ?
Bref, une petite overview ?
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Rapport avec les travaux précédents ?
Posté par abramov_MS . Évalué à 4.
[^] # Re: Rapport avec les travaux précédents ?
Posté par David Tschumperlé (site web personnel) . Évalué à 7.
# Version 0.2 disponible
Posté par David Tschumperlé (site web personnel) . Évalué à 6.
- Conversion entre espaces couleurs RGB,XYZ,Lab,HSL,HSI,HSV,YUV,YCbCr.
- Segmentation par croissance de région.
- Extraction d'isocourbe ou d'isosurface à partir d'une image 2D ou 3D et sauvegarde possible en objet 3D (format .off de Geomview).
[^] # Re: Version 0.2 disponible
Posté par Prae . Évalué à 3.
T'es un rapide dit donc, j'avais proposé cette feature ce matin, le temps de prendre un café et y'avait déjà la version les colorspace-conversion dispo sur CVS :-)
Bon, par contre, ce qui est bizarre c'est la conv semble ne pas marcher chez moi .... (mais j'ai un doute sur l'input aussi)
En gros, quand je prend Jasper (JPEG2000 encoder/decoder) pour passer de XYZ à sRGB, la conversion se passe bien (enfin je crois, j'ai aucune couleurs flashies); Par contre, j'ai toujours une image très verte.
En utilisant inrcast, je me retrouve toujours avec les couleurs flashies + verdate.
( sample: ./inrcast /tmp/dcp/0000150.j2c -zyz2rgb -o test.jpg )
Assez bizarre ... je dois merder quelque part ...
[^] # Re: Version 0.2 disponible
Posté par David Tschumperlé (site web personnel) . Évalué à 4.
Moi j'utilise celle décrite dans la FAQ Poynton :
http://www.poynton.com/ColorFAQ.html
Est-ce que c'est celle là que tu utilises aussi ?
C'est juste une fonction linéaire de RGB, et ca a tendance effectivement à booster la composante Y, donc quand on visualise sous forme RGB, ca donne une image verdatre
(la visu dans inrcast se fait toujours en utilisant RGB, même si la signification des canaux n'est pas du tout RGB).
Quand je fais :
inrcast image.jpg -rgb2xyz -xyz2rgb
je retrouve bien l'image initiale. Est-ce que tes valeurs sont bien sur 8 bits ? (mon RGB suppose des valeurs entre [0,255]).
David.
[^] # Re: Version 0.2 disponible
Posté par Prae . Évalué à 3.
Heuuuu, je suis pas spécialiste colorimétrie donc je vais essayer de répondre au plus correct possible.
Alors, mes images à l'origine sont en 12 bits:
$ jasper/bin/imginfo -f /tmp/dcp/0000150.j2c
jpc 3 1920 1080 12 9331200
Conversion en JPEG classique avec inrcast XYZ2RGB :
$ inrcast /tmp/dcp/0000150.j2c -xyz2rgb -o /tmp/test.jpg
Ca me donne une bouillie de pixels
Conversion en JPEG classique avec inrcast RGB2XYZ :
$ inrcast /tmp/dcp/0000150.j2c -rgb2xyz -o /tmp/test.jpg
Noir total.
Pour info :
$ jasper/bin/imginfo -f /tmp/test.jpg jpg
3 1920 1080 8 6220800
Donc output en 8 bits
Avec Jasper (conversion en sRGB avant) :
$ jasper --input /tmp/dcp/0000150.j2c --output /tmp/test.jpg --force-srgb
forcing conversion to sRGB
$ imginfo -f /tmp/test.jpg
jpg 3 1920 1080 8 6220800
Plus aucune couleur flashie, par contre un bon teint vert.
J'essaye de retravailler après avec inrcast :
$inrcast /tmp/test.jpg -xyz2rgb -o /tmp/test2.jpg
Le ton verdatre disparait, mais les couleurs flashies réapparaissent.
Bon, déjà j'arrive à un autre point de niveau ... je continue mes investigations
A vous les studios !
PS: Si j'ai pas répondu à tes questions ou mal compris, t'as le droit de m'insulter (mais seulement en XYZ)
[^] # Re: Version 0.2 disponible
Posté par David Tschumperlé (site web personnel) . Évalué à 2.
Si c'est du 12 bits je comprend que la conversion en RGB foire à priori, car cela ne va pas donner du 8 bits en sortie, il va falloir renormaliser quelque part (c'est possible à priori, il y a l'option '-val' qui fait çà).
Si tu peux m'envoyer une image ca m'interesse, car je ne connais pas trop ce format, c'est toujours bon d'avoir un exemple dans un coin pour voir ses particularités..
David.
[^] # Re: Version 0.2 disponible
Posté par Prae . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.