2010-05-21 5 views
0

Comment puis-je savoir si une image lue avec imread est binaire dans MatlabImage binaire dans Matlab

Je l'ai fait:

Img = imread(IMGsrc); 

T = Img== 1 | Img == 0; 

If min(min(T)) == ?????? 

    imshow(T); 

end 

????? = ??????

Répondre

4

Il existe deux façons de tester les images binaires.

La plus simple est de tester si l'image est une matrice logique (un réseau logique est retournée par les fonctions de la boîte à outils de traitement d'image qui renvoient l'image binaire)

isBinaryImage = islogical(img); 

Alternativement, vous vérifier si tous les pixels sont 1 ou 0

isBinaryImage = all(img(:)==0 | img(:)==1); 
0

En supposant par « binaire » vous voulez dire « chaque pixel est 1 ou 0 », un couple de choses étant donné votre image I:

  • size(I) ne doit renvoyer les lignes et les colonnes (pas de canaux) sinon il n'est pas binaire
  • Vous pouvez tester chaque pixel est 1 ou 0 avec T = I == 1 | I == 0;. Si min(min(T)) renvoie autre chose que 1 alors au moins un pixel a échoué à ce test, ce qui signifie qu'il n'y a pas de valeur 0 ni 1. (Pour cette question, vous pouvez utiliser un test similaire pour vérifier un certain nombre de valeurs énumérées, non seulement 0 et 1.)

Si vous pouvez préciser davantage ce que vous entendez par « binaire » qui irait un long chemin à une meilleure réponse.

+0

J'essaye de faire ceci. Si Img est binaire alors ImgToBin = im2bw (Img); End If Je veux dire par binaire (image avec des couleurs noir et blanc). –

Questions connexes