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

1 次查看(过去 30 天)
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
KSSV 2018-11-1
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 个评论
HONG CHENG
HONG CHENG 2018-11-4
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Geometric Transformation and Image Registration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by