2011-05-13 6 views
1

J'ai donc quantifié une image en niveaux de gris avec quatre valeurs quantifiées. J'essaie de maintenir le premier pixel de chaque ligne de l'image quantifiée et de remplacer chaque pixel successif par la différence entre le pixel et sa gauche.Matlab - Remplacer le pixel successif par le pixel de gauche

Comment coderiez-vous ceci dans matlab et quelqu'un peut-il m'expliquer cela conceptuellement?

En outre, mon souci est que parce que l'image est relativement uniforme en raison de la quantification de la gamme dynamique, la plupart de l'image apparaîtrait en noir, non? Il me semble que seules les zones de transition et les arêtes auront des différences dans les valeurs quantifiées.

Répondre

3

Pour créer la différence au pixel sur la gauche, tout ce que vous avez à faire est soustraire les pixels dans les colonnes 1,2,3 ... des colonnes 2,3,4 ...

%# create a random image with four values 
randomImage = randi(4,[100,90]); %# use different numbers of rows and cols so we know which is which 

%# catenate the first column of the image with the difference from the pixel to the left 
%# for all pairs of columns in the image 
differenceImage = [randomImage(:,1),randomImage(:,1:end-1)-randomImage(:,2:end)]; 

Oui, vous attendez pas mal de patches uniformes (qui seront gris, car à moins que vous ne tracez la valeur absolue des différences, il y en aura qui sont négatives).

+0

Je suis désolé. Je ne suis pas sûr de comprendre l'aspect codage. Principalement parce que j'oublie toujours la bonne syntaxe. Pouvez-vous expliquer s'il vous plaît? – user730255

+0

Salut, ça marche quand même ... Je pense que j'ai juste besoin d'un peu plus d'explications sur comment cela fonctionne. Je vous remercie. – user730255

+0

@ user730255: '[A, B]' ajoute 'B' à droite de' A'. 'A (:, 1)' est la première colonne de 'A' (c'est-à-dire toutes les lignes, première colonne). 'A (:, 2: fin)' est 'A' sans la première colonne (c'est-à-dire toutes les lignes, les colonnes 2 à autant qu'il y en a). Pour calculer, pour chaque colonne (sauf n ° 1) la différence avec les pixels de la colonne à gauche, je fais deux sous-tableaux - un qui contient tout sauf la première colonne, et un qui contient tout sauf le dernier. Si je devais les superposer, j'obtiendrais, pour chaque pixel du premier sous-tableau, son voisin à gauche dans le deuxième sous-tableau. Alors tout ce que je fais c'est prendre la différence. – Jonas

Questions connexes