2010-06-10 5 views
2

Comment utiliseriez-vous Matlab pour effectuer les opérations suivantes? J'ai des images carrées de la même taille et à l'intérieur du carré flou, il y a des carrés plus petits, et je veux nettoyer les plus grands carrés - pas les plus petits - afin qu'ils ne soient plus flous. On dirait que je devrais faire un type de masque morphologique, mais je ne sais pas comment dans ce cas.Nettoyage des images dans matlab

+3

Il serait utile que vous pouvez montrer un exemple de l'image. en outre – yuk

+0

, s'il vous plaît nous dire ce que vous savez. avez-vous un masque pour l'emplacement des carrés? – Geoff

Répondre

1

Si vous savez où se trouvent les pixels de grands carrés flous, (en fonction des valeurs de pixels), vous pouvez enregistrer leur emplacement (s). Tournez tous les autres pixels à 0 ou 1 sauf à ces endroits. Utilisez la fonction 'find' (location - find (image == value) pour trouver l'emplacement

Si les valeurs du grand carré flou sont une plage [valeur1 valeur2], alors vous pourriez utiliser une boucle for avec si déclaration.

for a =1:m 
    for b= 1:n % image is mxn matrix 
    if image(a,b)<=value1 && image(a,b) >=value2 
     image(a,b) = 0; 
    end 
    end 
end 

Cela semble assez simple, à moins que je mal compris votre question

+0

Si le OP _had_ d'utiliser cette logique, une meilleure mise en œuvre serait: image (image < = valeur1 & image> = valeur2) = 0 –

Questions connexes