2017-01-31 3 views
0

Chers amis, J'essaie de binariser l'image, ça ira mieux si je coupe les parties noires. Pour éviter les effets de bord drôles que je vais recadrer le modèle à un cercle, et donc notre « masque » est tiré au-dessous, ainsi que l'extrait pertinent de MatlabEssayer de couper une image via Matlab

enter image description here

P = imread('Pattern.png'); 
P = 1-im2bw(P); % Keep black parts 
Nmin = min(size(P)); 
% Crop into square, then circle 
P = P(1:Nmin, 1:Nmin); 
[xg, yg] = meshgrid(1:Nmin, 1:Nmin); 
P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0; 
% Create a small border 
P = padarray(P, [1 1], 0); 

Mais pour une raison quelconque, je « m ayant des problèmes avec la ligne 7,

Error: File: Try1.m Line: 7 Column: 42 
Unbalanced or unexpected parenthesis or bracket. 

s'il vous plaît aidez-moi ...

modifier:

ici est explication

enter image description here

+0

Définir des "problèmes". Qu'essayez-vous de faire à la ligne 7? Que voulez-vous dire par "couper les parties noires"? Avez-vous des exemples d'images d'entrée et de sortie? Votre code ne contient pas réellement '>' dedans, n'est-ce pas? – beaker

+0

Attachez votre image à la Q. Ligne 7 en incluant les commentaires ou en l'excluant? – NKN

+0

Le ';' devrait probablement contenir un ','. – hbaderts

Répondre

3

Je suppose que vous avez copié ce code à partir d'un site Web. La raison en est la ligne suivante:

P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0; 

Notez que le >? (qui est ce que @beaker a mentionné dans son commentaire) Si vous vérifiez le code original sur le site Web où vous l'avez trouvé, il y a probablement un > au lieu de >?

La raison en est qu'en HTML, le signe > est affiché par writing > in the HTML source code. Lorsque le site Web est affiché dans votre navigateur, il va convertir > au signe >, mais apparemment, lors du copier-coller du code, il a apparemment copié le code source HTML et non le signe rendu.

Matlab bien sûr ne peut pas gérer le code source HTML, vous devez remplacer > par > et votre code fonctionne bien:

P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0; 

resulting image

+0

Merci beaucoup! – secret