Clear Filters
Clear Filters

rotating a matrix without interpolation

3 views (last 30 days)
Oded Scharf
Oded Scharf on 1 Dec 2020
Commented: Oded Scharf on 6 Dec 2020
Hey,
I want to rotate a mtrix by a certain degree without interpolating the intermediate pixels and just place NaN in them.
I tried to use imrotate but there is no option to do it without interpolating.
Any suggestions?
Thank in advence.
Oded

Answers (1)

Walter Roberson
Walter Roberson on 2 Dec 2020
When you rotate a matrix, then the only pixels that can be calculated without any interpolation are the ones whose coordinates are such that the ratio of coordinates is exactly an integer multiple of tan() of the rotation angle. For example if the rotation is 42.7093899573615 degrees then there are some pixels whose coordinates happen to fall on the famous (5, 12, 13) pythagorean triple, and those single pixels could be copied without any interpolation. Every other pixel would require interpolation.
Are you sure you want to construct a matrix of nan that is the appropriate size to hold the rotated matrix, with the entire matrix nan except for the few scattered pixels that just happen to be at exactly the right coordinates to be carried from integer position to integer position by the rotation?
  7 Comments
Walter Roberson
Walter Roberson on 5 Dec 2020
I notice that in your desired result that each location ends up sqrt(2) times the original distance. Items that were 1 unit end up on the diagonal sqrt(2) away. Items that were sqrt(2) away end up 2 away. Is that the pattern? We might be able to work with that.
Oded Scharf
Oded Scharf on 6 Dec 2020
Yeah, I think it is the right pattern

Sign in to comment.

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!