Bonjour,
j'ai un petit problème sous matlab, j'essaye de normaliser (entre 0 et 1) les valeurs d'une image RGB (entre 0 et 255):
a = imread('image.tiff');
test= a(:,:,1)/255;
Tout bête normalement,
Et la, je me retrouve avec que des 0 ou des 1... J'ai essayé de passer au format long, mais toujours pareil...
Donc si qq1 a une idée,
Merci!!
t'as vérifier que t'avais pas que des 255 et des 0?
sinon ca peut etre un problème de format
si ton chiffre à la base c'est un entier ( a(i,j,k) entier)
1/255 ca donne 0
54/255 ca donne aussi 0
seul 255/255 donne 1
La lumière a quelque chose de maléfique.
Seules d'obscures expériences permettent de s'y initier.
12/08/2004 - 13h20
flaharrague
Date d'inscription
août 2004
Messages
3
Re : Programmation Matlab, traitement d'image
Oui j'ai d'autres valeurs que 0 ou 255, mais ma question est bien la, je sais que les nombres sont tronqués en entiers, comment faire pour garder les décimales et mettre des float (ou long) dans a??
12/08/2004 - 13h52
flaharrague
Date d'inscription
août 2004
Messages
3
Re : Programmation Matlab, traitement d'image
Tu ne saurais pas faire une sorte de cast comme en c, sous matlab?
12/08/2004 - 17h10
jepoirrier
Date d'inscription
août 2004
Messages
1 123
Re : Programmation Matlab, traitement d'image
Envoyé par flaharrague
a = imread('image.tiff');
test= a(:,:,1)/255;
Et la, je me retrouve avec que des 0 ou des 1... J'ai essayé de passer au format long, mais toujours pareil...
En passant au format double, çà marche chez moi :
a = imread('logo-cncm.tif');
test=double(a)/255;
Après :
>> test(100,200)
ans =
0.0039
J'espère que çà peut t'aider ...
PS : l'image que j'ai utilisé
PS.2 : le format double n'est peut-être pas le plus approprié (peut-être trop lourd, occupe bcp de mémoire)
je ne sais rien de votre sujet mais,
saviez vous un site reference sur les algorithme de traitement d'image
14/01/2008 - 11h11
lou_ibmix_xi
Date d'inscription
juin 2006
Localisation
Toulon
Âge
34
Messages
1 197
Re : Programmation Matlab, traitement d'image
Salut,
La raison de ce mystère est que (se mémoire) imread te ressort des entiers, il faut donc que tu convertisses d'abord ton image en flottants grâce à la fonction "float".
A plus