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

5 Ansichten (letzte 30 Tage)
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.

Akzeptierte Antwort

KSSV
KSSV am 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')
  1 Kommentar
HONG CHENG
HONG CHENG am 4 Nov. 2018
Thanks for your kind answer.
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 3-D Scene Control finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by