Effacer les filtres
Effacer les filtres

How to store the difference between adjacent pixel values of image

5 vues (au cours des 30 derniers jours)
layth ibrahim
layth ibrahim le 11 Avr 2022
Commenté : layth ibrahim le 15 Avr 2022
I have a black and white image and I need to store the value of the differences between each adjacent pixel so that i may plot the values in a histogram.
  3 commentaires
layth ibrahim
layth ibrahim le 11 Avr 2022
Starting from pixel (1,1) after that the difference with the pixel before its position. Sorry, I should have said its grayscale.
layth ibrahim
layth ibrahim le 15 Avr 2022
Was recently told I need to use a nested "for" loop to acomplish the task.

Connectez-vous pour commenter.

Réponses (2)

Benjamin Thompson
Benjamin Thompson le 11 Avr 2022
Modifié(e) : Benjamin Thompson le 11 Avr 2022
Use imfilter with a 1D filter argument. If your h is vertical then the difference operation is in the vertical direction. If the filter coefficients h are horizontal then the difference operation is horizontal.
>> imshow(phantom)
>> imshow(imfilter(phantom, [-1 1]))
>> imshow(imfilter(phantom, [-1 1]'))

DGM
DGM le 11 Avr 2022
If all you want is the difference in one direction, then just use diff().
A = randi([0 255],10);
dAdx = diff(A,1,2);
histogram(dAdx(:))

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by