how to identify a 3d matrix?

15 vues (au cours des 30 derniers jours)
Kobi
Kobi le 1 Juil 2014
Modifié(e) : Geoff Hayes le 1 Juil 2014
by using the function:
MAT=imread('image.jpg');
sometimes (if the image isn't in grayscale) i get output of 3D matrix (RGB) is there any function or a technic i can use?
  1 commentaire
Sara
Sara le 1 Juil 2014
Can use to do what?

Connectez-vous pour commenter.

Réponse acceptée

the cyclist
the cyclist le 1 Juil 2014
numel(size(MAT))>=3
will be true for an array of dimension 3 or greater.
Note that this will not discriminate between objects of dimension 1 and 2, because of how MATLAB stores scalars as vectors of length 1 (and therefore have size 1x1).

Plus de réponses (1)

Geoff Hayes
Geoff Hayes le 1 Juil 2014
Try ndims which returns the number of dimensions
if ndims(MAT)==3
% matrix is three dimensional
end
  2 commentaires
the cyclist
the cyclist le 1 Juil 2014
I didn't know about this command, which is a cleaner version of what I did more manually. Note that it suffers from the same weakness about not being able to discriminate between objects of dimension 1 and 2.
Geoff Hayes
Geoff Hayes le 1 Juil 2014
Modifié(e) : Geoff Hayes le 1 Juil 2014
That's true. You could use isvector to discriminate between objections of dimension 1 and 2.
I suppose even ismatrix could be used to determine if the object has at most two dimensions (and so ~ismatrix(MAT) would be true for a 3D image).

Connectez-vous pour commenter.

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by