2014-05-02 4 views
1

Je ne comprends pas très bien comment fonctionne Imresize, surtout quand on redimensionne une image (par exemple de 4x4 à 2x2). Lorsque nous sommes en train de faire de la mise à l'échelle, c'est plus facile à comprendre. Je veux dire que nous devons simplement trouver des points intermédiaires soit en voyant quel point connu est plus proche (méthode = 'plus proche') ou en utilisant une moyenne linéaire de 4 points connus les plus proches (méthode = 'bilinéaire') et ainsi de suite. Nous n'avons pas besoin de filtre pour ce droit?Comment imresize fonctionne lors du sous-échantillonnage d'une image dans MATLAB?

Et mon principal doute est quand nous downscale. Je comprends des classes de traitement de signal que pour éviter l'aliasing, un filtre passe-bas de lissage doit être appliqué avant de décimer les valeurs intermédiaires. Mais quel filtre utilise MATLAB? Ils disent simplement des méthodes et je ne comprends pas comment on peut utiliser 'bilinéaire' ou 'bicubique' comme noyau.

Merci pour la lecture.

+0

Encore une question. Et si je veux utiliser un noyau gaussien pour la réduction d'échelle? Comment puis-je y parvenir? – akhilc

+0

Ou quelqu'un peut-il simplement me dire quel noyau utilisent-ils si nous tapons simplement imresize (I, 0.5); sans aucune spécification de méthode ou de noyau. Je voudrais connaître le noyau flou qui filtre le LP. Je vous remercie. – akhilc

Répondre

2

La documentation de la fonction semble incomplète. Ouvrez le imresize.m (edit imresize) et jetez un oeil à la fonction contributions.

Ici, vous pouvez voir que matlab n'utilise pas un neibourhood 2x2 lorsque vous utilisez le bilinear ou bicubic -method et downscaling. La taille du noyau est augmentée pour éviter l'alias.


Quelques explications sur les maths derrière imresize. Pour simplifier, je vais expliquer le cas 1D seulement. Lorsqu'une échelle < 1 est utilisée, la taille de la fenêtre est augmentée. Cela signifie que la valeur résultante n'est plus la moyenne pondérée des 2 voisins (2x2 pour les images). Au lieu de cela, une taille de fenêtre plus grande de w (wxw) est utilisée.

Commencer par la méthode standard:

Std

L'image montre le cas courant, deux valeurs connues de la grille en moyenne à un nouveau avec les poids 1/5 et 4/5. Au lieu de la définition bien connue, les poids peuvent également être définis d'un triangle avec la base w = 2:

With triangle w=1

de plus en plus maintenant la base du triangle, nous obtenons les poids pour une taille de fenêtre plus grande. Une base de w = 6 est tracé:

w=3

Le nouveau triangle définit le poids de plus de 6 points.

+0

Merci pour votre réponse. Mais mon doute est de savoir comment pouvons-nous utiliser «bilinéaire» ou «bicubique» comme noyau lors de la réduction d'échelle? Ne sont-ils pas seulement des méthodes d'interpolation? Seule la «boîte» ou de tels noyaux devraient être applicables pour la réduction d'échelle à droite? – akhilc

+0

@akhilc: J'ai ajouté quelques explications sur les maths derrière la méthode linéaire. – Daniel

Questions connexes