MATLAB: Line profile adding certain rows together

imageimage analysislinescan

Hi. I have an image that I create a horizontal linescan through the centre (y co0rdinate = rMiddle)
I have also shown two red dotted lines that represent +/- 1 pixel. What I'm trying to do it centred around rMiddle, obtain a profile that sums the linescans together for not for +/-1 pixel but to extend +/- 3 pixels.
This is what I have so far but was wondering if their is a more elegant way.
yth_row=img(rMiddle,:)+img(rMiddle-1,:)+img(rMiddle+1,:)+img(rMiddle-2,:)+img(rMiddle+2,:)+img(rMiddle-3,:)+img(rMiddle+3,:);
Thanks Jason

Best Answer

ind = [-3 -2 2 3] + rMiddle; % rows +/- 3 pixels from rMiddle, but without row rMiddle and the direct rows +/- 1 pixels above and below of rMiddle.
Y = sum(img(ind, :), 2); % sum across the second dimension, i.e., across columns