How to store the difference between adjacent pixel values of image

4 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(:))

Catégories

En savoir plus sur Image Filtering and Enhancement dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by