How to used linspace matlab function to get the and the y of all pixels in image? -
i have image of 200x200 * 3, , should find x , y of each pixel of image using linspace matlab function. have used mesh grid function following code:
ny=200; % # pixels in y direction nx=200; % # pixels in x direction resolution=1; % size of pixel img=rand(ny,nx,3); % random image y=(img(1:ny))*resolution-resolution/2; x=(img(1:nx))*resolution-resolution/2; [x,y]=meshgrid(x,y);
but supervisor told me use function linspace , cannot understand how.can me please
the reason can think of supervisor wants use linspace
creating x
, y
vector inputs meshgrid
. linspace
alone not sufficient generate of pixel coordinates, you'll have use meshgrid
, ndgrid
, repelem
or repmat
.
the 1 advantage linspace
has on doing 1:resolution:ny
linspace
ensures endpoints appear in range. example, if do
>> 1:.37:4 ans = 1.0000 1.3700 1.7400 2.1100 2.4800 2.8500 3.2200 3.5900 3.9600
you don't 4
last point. however, if use linspace
:
>> linspace(1,4,9) ans = 1.0000 1.3750 1.7500 2.1250 2.5000 2.8750 3.2500 3.6250 4.0000
the spacing automatically adjusted make last element 4
.
so assuming resolution
multiplier number of points want, 2
want 401
evenly spaced points , 1/2
want 101
points, code this:
x_points = linspace(1, nx, nx*resolution+1); y_points = linspace(1, ny, ny*resolution+1);
(i'm still not sure resolution/2
part supposed do, we'll need clarify that.)
then pass meshgrid
:
[x,y] = meshgrid(x_points, y_points);
Comments
Post a Comment