how to find distance of each pixel of image from center of image

4 views (last 30 days)
I am interested to find the distance between each pixel of an image with respect to center of image. It is independent of gray level.

Accepted Answer

Jan
Jan on 5 Feb 2018
Edited: Jan on 8 Apr 2019
If your image has 640 x 480 pixels, and the center is at the pixel 320 / 240:
img = rand(480, 640);
y = 1:size(img, 1);
x = 1:size(img, 2);
c = [240, 320];
D = sqrt((y.' - c(1)) .^ 2 + (x - c(2)) .^ 2); % >= R2016b
With older Matlab versions:
D = sqrt(bsxfun(@plus, (y.' - c(1)) .^ 2, (x - c(2)) .^ 2));
This is the distance measured in pixels.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!