Can someone tell me how to find the summation of all the pixel values in an image?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sneheet
el 22 de En. de 2014
Comentada: Walter Roberson
el 26 de En. de 2014
I'm trying to implement a Sum Average Difference (SAD) based code to find the difference between consecutive frames in a video to eliminate those frames which do not contain activity i.e. no motion.
2 comentarios
Respuesta aceptada
Bruno Pop-Stefanov
el 22 de En. de 2014
Editada: Bruno Pop-Stefanov
el 22 de En. de 2014
Assuming the frames you want to compare are called img_prev and img_next, both matrices of the same size, the following function computes what you want:
function out = sad(img_prev, img_next)
% First, take the absolute value of the difference at each pixel
myAbsDiff = abs(img_prev - img_next);
% Then, sum over all pixels
out = sum(myAbsDiff(:));
end
Using (:) you can transform matrix myAbsDiff into a vector. Calling sum on a vector computes the sum of all elements in a vector.
3 comentarios
Image Analyst
el 26 de En. de 2014
Editada: Image Analyst
el 26 de En. de 2014
No, as you can see he just defined it right there above. However, with uint8 images, it will need to be modified to allow negative numbers by casting the numbers to double.
function out = sad(img_prev, img_next)
% First, take the absolute value of the difference at each pixel
myAbsDiff = abs(double(img_prev) - double(img_next));
% Then, sum over all pixels
out = sum(myAbsDiff(:));
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!