Image RVB de l'image binaire
Je veux charger une image RVB en MATLAB et de le transformer en une image binaire, où je peux choisir le nombre de pixels de l'image binaire. Par exemple, j'avais la charge d'un 300x300 png/jpg image en MATLAB et je vais finir avec une image binaire (pixels ne peut être #000 #FFF), qui pourraient être de 10x10 pixels.
C'est ce que j'ai essayé jusqu'à présent:
load trees % from MATLAB
gray=rgb2gray(map); % 'map' is loaded from 'trees'. Convert to grayscale.
threshold=128;
lbw=double(gray>threshold);
BW=im2bw(X,lbw); % 'X' is loaded from 'trees'.
imshow(X,map), figure, imshow(BW)
(J'ai obtenu une partie de la ci-dessus à partir d'une recherche sur internet.)
Je viens de finir avec une image en noir lors de la imshow(BW)
.
OriginalL'auteur eightx2 | 2012-08-29
Vous devez vous connecter pour publier un commentaire.
Votre premier problème, c'est que vous confondez les images indexées (qui ont une palette de couleurs
map
) et Les images RVB (qui ne le sont pas). L'échantillon d'image intégréetrees.mat
que vous chargez dans votre exemple, une image indexée, et vous devez donc utiliser la fonctionind2gray
d'abord le convertir en un niveaux de gris de l'intensité de l'image. Pour les images RVB la fonctionrgb2gray
ferait la même chose.Ensuite, vous devez déterminer un seuil à utiliser pour convertir l'image en niveaux de gris d'une image binaire. Je suggère la fonction
graythresh
, ce qui permettra de calculer un seuil de brancherim2bw
(ou la plus récenteimbinarize
). Voici comment je ferais ce que vous faites dans votre exemple:Et voici ce que l'image originale et le résultat
BW
ressembler à:Pour une image RVB en entrée, il suffit de remplacer
ind2gray
avecrgb2gray
dans le code ci-dessus.À l'égard de redimensionner votre image, qui peut être fait facilement avec la boîte à outils de Traitement d'Image la fonction
imresize
, comme suit:Excellente Réponse. Je vous remercie.
OriginalL'auteur gnovice
C'est parce que
gray
est à l'échelle de[0,1]
, alors quethreshold
est dans[0,256]
.Cela provoque
lbw
pour être un grand tableau defalse
. Voici un code modifié qui résout le problème:Et le résultat est:
OriginalL'auteur Andrey Rubshtein