# How to do the grid sampling in the rotated square area of an image

5 views (last 30 days)
HONG CHENG on 1 Nov 2018
Commented: HONG CHENG on 4 Nov 2018
As the following image shows, I want to do grid sampling in the rotated square area of an image.
I need to get a matrix with a certain size and the values of this matrix are the grid pixel value of the image.
Is there an algorithm can do this? or is there a function in Matlab? I found some functions in the Matlab Answer, but all of them are not for the rotated square area as the second image shown.

KSSV on 1 Nov 2018
YOu can rotate the image in the way you want.
M = 50; N = 50 ;
x = linspace(0,1,M) ;
y = linspace(0,1,N) ;
[X,Y] = meshgrid(x,y) ;
th = 45 ;
R = [cos(th) -sin(th) ; sin(th) cos(th)] ;
coor = [(X(:)-mean(X(:))) (Y(:)-mean(Y(:)))]*R ;
Xi = mean(X(:))+reshape(coor(:,1),M,N) ;
Yi = mean(Y(:))+reshape(coor(:,2),M,N) ;
figure
hold on
plot(X,Y,'.r')
plot(Xi,Yi,'.b')
HONG CHENG on 4 Nov 2018
However, I want to get the coordinates of the rotated grid points. In your case, I can draw the same square area on the top of origin image.
But I am trying to get the grid coordinates of a smaller area. With the meshgrid coordinate system, I don't know how to determine the position of the smaller area.