2014-09-04 5 views
1

Comment redimensionner une image sans utiliser imresize dans MatlabRedimensionner image sans imresize (Matlab)

+4

avoir quelqu'un pour faire vos devoirs enseigner l'habitude de vous Matlab ... Si vous passez 20-30 minutes pour lire dans la documentation de base concernant les opérations de la matrice, notations etc, vous seriez surpris de voir à quel point tout est facile ... – bla

+0

Regardez les diapositives de traitement d'image de Richard Alan Peters II sur le rééchantillonnage d'image: https://ia600307.us.archive.org/7/items/Lectures_on_Image_Processing/EECE253_12_Resampling. pdf - Portez une attention particulière à la diapositive # 34. – rayryeng

+0

Puisque @lakesh vous a donné le code d'interpolation le plus proche de votre voisin, pourquoi ne pas essayer l'interpolation bilinéaire et essayer d'impressionner votre professeur (et vous même!)? –

Répondre

8

Ce code se fait en utilisant l'interpolation du plus proche voisin.

%# Initializations: 

scale = [2 2];    %# The resolution scale factors: [rows columns] 
oldSize = size(inputImage);     %# Get the size of your image 
newSize = max(floor(scale.*oldSize(1:2)),1); %# Compute the new image size 

%# Compute an upsampled set of indices: 

rowIndex = min(round(((1:newSize(1))-0.5)./scale(1)+0.5),oldSize(1)); 
colIndex = min(round(((1:newSize(2))-0.5)./scale(2)+0.5),oldSize(2)); 

%# Index old image to get new image: 

outputImage = inputImage(rowIndex,colIndex,:); 

Vous avez juste besoin de changer le facteur d'échelle en conséquence ..

+6

Ceci est bon code lakesh, mais je n'aurais pas posté cela parce que la question ressemble à des devoirs. Nous devrions laisser ces gens faire leurs devoirs. Je donne seulement des solutions si je peux clairement voir qu'ils ont fait un bon effort et sont bloqués. Cet OP n'a rien essayé. Je vais quand même voter +1 car c'est la façon correcte de faire l'interpolation du plus proche voisin en 2D ... ou au moins l'une des bonnes manières. – rayryeng

+0

En fait, j'ai trouvé cette réponse très utile. MathWorks est très avare avec des boîtes à outils, et il semble stupide de payer pour la boîte à outils d'analyse d'image juste pour pouvoir mettre à l'échelle une image. –