rotate an image segment without background

1 次查看(过去 30 天)
I have a BW image. I just want to rotate the polygon in the image. (The polygon rotates about its centroid.) But when I do, the background also rotates and more black pixels are added by default also the size of the polygon is changing. I want all the background as white. Any help is appreciated.
  1 个评论
Image Analyst
Image Analyst 2018-2-10
Do you already HAVE the centroid? If so, give it to us so we can give you the code. Otherwise imrotate() will just rotate around the center of the image, not around the center of the shape. If you don't have it, then use regionprops() to ask for it, and if you can't do that, let us know and we'll show you. And remember (x,y) equals (column, row), not (row, column).

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2018-2-10
编辑:Matt J 2018-2-11
Instead of performing the rotation on BW, apply it to ~BW. Then take the complement of that result,
result = ~rotationFunction(~BW, angle);

Community Treasure Hunt

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

Start Hunting!

Translated by