Correctly sum image values
Mostra commenti meno recenti
I have a standard rob image
im = imread('myIm.jpg');
I want to access values within this image so that i can calculate the average for different regions. The coordinates for these rejoins are held in variables xx and yy. I have tried averaging the red, green, blue values from the image as below but instead of the sum returning a single value it returns an array of doubles. xx and yy are of size 1x1028 which is the size of the average i get back.
avRed = sum(im(xx,yy,1))/el;
avGre = sum(im(xx,yy,2))/el;
avBlu = sum(im(xx,yy,3))/el;
I want to sum up all the image values at points xx and yy, and then divide them by the number of elements el, and have the average colour value returned as a single value between 0-255 and not an array. Could anyone advise me on where i have gone wrong.
Risposta accettata
Più risposte (1)
Azzi Abdelmalek
il 1 Nov 2013
Modificato: Azzi Abdelmalek
il 1 Nov 2013
n=size(im);
m=ones(size(xx));
avRed = sum(im(sub2ind(n,xx,yy,m)))/el;
avGre = sum(im(sub2ind(n,xx,yy,2*m)))/el;
avBlu = sum(im(sub2ind(n,xx,yy,3*m)))/el;
Categorie
Scopri di più su Image Arithmetic in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!