Академический Документы
Профессиональный Документы
Культура Документы
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter tudes Emploi Club Contacts
Accueil ALM Java .NET Dv. Web EDI Langages SGBD Office Solutions d'entreprise Applications Mobiles Systmes
EDI 4D Delphi Eclipse LabVIEW NetBeans MATLAB Visual Studio WinDev
Livres MATLAB
Visual Basic 6
Lazarus
Qt Creator
Accueil MATLAB
Forums MATLAB
FAQ MATLAB
Tutoriels MATLAB
Sources MATLAB
Table des matires Avant propos I. Formats de fichiers supports I-A. Formats supports nativement par MATLAB I-B. Formats supports via les Toolbox I-C. Formats supports via des contributions du File Exchange II. Outils de gestion des images II-A. Les fonctions MATLAB II-B. Les Toolbox II-C. Les images tests II-C-1. Images fournies avec MATLAB II-C-2. Images fournies avec l'Image Processing Toolbox II-C-2-a. Images au format JPEG II-C-2-b. Images au format TIFF II-C-2-c. Images au format PNG III. Reprsentation des images III-A. Matrice image III-B. Objets graphiques reprsentant les images III-B-1. L'objet Image III-B-2. L'objet Surface IV. Ressources disponibles V. Les images caches (Easter Eggs) Remerciements Cet article est une introduction la gestion des images sous MATLAB. Contenu : dans un premier temps, il rcapitule les diffrents formats de fichiers images supports. Les outils permettant de grer les images sont ensuite brivement prsents. Puis la reprsentation des images est aborde. Des liens pour s'initier ou se perfectionner au traitement d'images sont ensuite rpertoris. Pour conclure sur une note moins srieuse, quelques Easter Eggs relatifs aux images sont dvoils. Public vis : sans tre destin aux novices, cet article vise un public dbutant avec l'utilisation des images sous MATLAB. Votre avis et vos suggestions sur cet article m'intressent ! Alors aprs votre lecture, n'hsitez pas : 7 commentaires L'auteur
Jrme Briot
Larticle Avant propos Publi le 29 octobre 2007 - Mis jour le 15 novembre 2012 Liens sociaux MATLAB est un langage initialement cr pour traiter des problmes d'analyse numrique. Il est optimis pour le calcul matriciel et convient donc parfaitement pour la manipulation et le traitement d'images numriques. Ces dernires sont en effet reprsentes par des matrices 2 ou 3 dimensions. Cet article est avant tout une prsentation gnrale de la gestion des images sous MATLAB. Il n'a pas pour vocation aborder les notions de manipulation ou de traitement d'images. Les liens donns en fin d'article permettront au lecteur d'approfondir les notions abordes ici. Certaines parties de cet article sont volutives (par exemple, le tableau de la premire partie) et seront mis jour au fur et mesure.
1 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
I. Formats de fichiers supports Les oprations de lecture/criture des fichiers contenant des images sous MATLAB sont grandement simplifies grce des fonctions toutes faites qui sont disponibles soit : sous MATLAB nativement (imread, imwrite, print) dans les Toolbox ddies aux images (Image Acquisition, Image Processing, Mapping) sur le File Exchange du MATLAB Central sur le web Si vous constatez une erreur ou si vous souhaitez qu'une fonction soit ajoute aux tableaux suivants, contactez en priorit l'auteur de cet article ou le responsable de la rubrique MATLAB sur Developpez.com
2 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
cape.mat
clown.mat
detail
durer.mat
earth.mat
flujet
gatlin.mat
gatlin2.mat
mandri
spine.mat Chaque image est enregistre dans un fichier .mat et chacun de ces fichiers comporte deux variables : X : la matrice image map : la palette de couleurs associes Le chargement de ces images s'effectue avec la fonction load et l'affichage peut tre obtenu comme ceci : Slectionnez
figure load(<nom du fichier mat>); colormap(map); imagesc(X); axis image
Il existe aussi une image au format JPEG disponible sur toutes les versions de MATLAB (mme les plus anciennes) :
3 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
ngc6543a.jpg Cette image se lit avec la fonction imread et s'affiche avec la fonction image.
football.jpg
greens.jpg
autumn.tif
boa
cameraman.tif
canoe.tif
ce
circbw.tif
circuit.tif
eig
forest.tif
kids.tif
log
4 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
m83.tif
mandi.tif
mo
mri.tif
paper1.tif
po
shadow.tif
spine.tif
tir
trees.tif
bag.png
blobs.png
ci
coins.png
concordaerial.png
concord
fabric.png
gantrycrane.png
hestain.png
liftingbody.png
5 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
pears.png
peppers.png
pi
tape.png
testpat1.png
tissue.png
westconcordaerial.png
westconco
6 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
Le code suivant montre la diffrence entre une image dont le premier pixel est centr en (1,1) et une autre image dont le premier pixel est centr en (5,4) : Slectionnez
function placeimage rgb=rand(3,6,3); figure('numbertitle','off',... 'toolbar','none','menubar','none') subplot(2,1,1) image(rgb) axis image hold on plot(1,1,'ro') subplot(2,1,2) image(rgb,'xdata',5,'ydata',4 ) axis image hold on plot(5,4,'ro')
Slectionnez
figure('doublebuffer','on',... 'renderer','opengl',... 'numbertitle','off',... 'name','Projet Blue Marble - NASA''s Earth Observatory',... 'menubar','none',... 'toolbar','none',... 'units','pixels',... 'position',[200 200 400 300]) X = imread('BlueMarble.jpg','jpg'); X = X(end:-1:1,:,:); n = 50; theta = (-n:2:n)/n*pi; phi = (-n:2:n)'/n*pi/2;
7 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
cosphi = cos(phi); cosphi(1) = 0; cosphi(n+1) = 0; sintheta = sin(theta); sintheta(1) = 0; sintheta(n+1) = 0; r x y z = = = = 1; r*cosphi*cos(theta); r*cosphi*sintheta; r*sin(phi)*ones(1,n+1);
surf(x,y,z,'facecolor','texturemap',... 'cdata',X,'edgecolor','none'); axis tight axis equal axis off axis vis3d cameratoolbar cameratoolbar('setcoordsys', 'none')
Ce qui donne :
Sous MATLAB, utilisez le bouton "Orbit Camera" ( faire tourner la sphre terrestre. IV. Ressources disponibles
De nombreuses ressources sont disponibles sur Internet afin de s'initier ou se perfectionner la manipulation et au traitement d'images : FAQ MATLAB - Traitement d'Images Forum Traitement d'Images sous MATLAB Forum Algorithmes Image Processing Toolbox Demos Image Processing Webinars Le File Exchange Steve on Image Processing V. Les images caches (Easter Eggs) De nombreux dveloppeurs MATLAB furent surpris, suite une mauvaise manipulation (l'appel de la fonction image sans argument), de voir apparaitre la photo d'un petit garon l'cran (qui plus est la tte l'envers) :
Steve Eddins a donn la cl de ce mystre dans son blog. Voici donc un programme permettant de visualiser les 15 images caches dans MATLAB depuis la version 5.0 : Slectionnez
function showhiddenimages defimage = pow2(get(0,'DefaultImageCData'),47);
8 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
figure('numbertitle','off','name','MATLAB hidden images',... 'toolbar','none','menubar','none') colormap(gray) X = [47,51 42,46 37,41 36,36 35,35 34,34 33,33 28,32 23,27 18,22 13,16 9,12 5,8 1,4]; for n=1:14 subplot(3,5,n) imagesc(bitslice(defimage,X(n,1),X(n,2))); axis image off title(num2str(n)) end subplot(3,5,15) r = bitslice(defimage,0,0); g = bitslice(defimage,17,17); b = bitslice(defimage,34,34); imagesc(cat(3,r,g,b)); axis image off title('15') function b = bitslice(a,lowbit,highbit) %BITSLICE(A,LOWBIT,HIGHBIT) numbits = highbit - lowbit + 1; b = bitshift(a,-lowbit); b = fix(b); b = bitand(b,bitcmp(0,numbits)); b = b/max(b(:));
Commentaires sur ces images (toujours d'aprs Steve Eddins) : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. le plus vieux des fils de Steve Eddins un chien appartenant un dveloppeur de MathWorks un autre chien appartenant un dveloppeur de MathWorks l'inverse de la matrice de Hilbert (3x3) le logo (initial et de mauvaise rsolution) de MathWorks le nombre prfr de Loren Shure le carr magique (3x3) le plus jeune des fils de Steve Eddins le carr magique cach dans la gravure de Albrecht Drer, Melancholia des pices de monnaie (en fait un calembour en anglais...) Loren Shure ge de 4 ans Wilkinson, Givens, and Forsythe, la Gatlinburg Conference de 1964 sur l'algbre numrique. 13. Steve Eddins lui-mme 14. l'image par dfaut de MATLAB 4 15. l'histoire du cochon jaune Sources : The Story Behind the MATLAB Default Image, par Steve Eddins Remerciements L'auteur tient remercier UNi[FR] et Winjerome pour la correction orthographique de cet article.
9 sur 10
17/02/2013 10:15
http://briot-jerome.developpez.com/matlab/tutoriels/introduction-gestio...
Copyright 2007-2013 Jrme Briot. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose.
Developpez.com
Nous contacter Participez Informations lgales
Services
Forum MATLAB Blogs Hbergement
Partenaires
Hbergement Web
10 sur 10
17/02/2013 10:15