Rotate Image segment without background
显示 更早的评论
I want to rotate image like this

I have rotated Image but I have got image like this in matlab

How to fix this problem in matlab Actually I want only rotate leaf part only not whole image. Is it posibble
4 个评论
Gopichandh Danala
2016-9-16
编辑:Gopichandh Danala
2016-9-16
A simple trick is to change all the pixels other than the segment to a white background in your case.
I cropped your main image as u didn't post original image

and sample code is here:
leaf = imread('leaf.jpg');
figure, imshow(leaf, []);
rotateImg = imrotate(leaf,45); % rotate by 45 or 315 degrees
figure,
subplot(1,2,1)
imshow(rotateImg, [min(min(rotateImg(:))) max(max(rotateImg(:)))]);
newrotateImg = rotateImg;
newrotateImg(newrotateImg == 0) = 255; % make all 0 pixels to 255..
subplot(1,2,2)
imshow(newrotateImg, [min(min(newrotateImg(:))) max(max(newrotateImg(:)))]);

Hope it helps,
Image Analyst
2016-9-16
编辑:Image Analyst
2016-9-16
Gopichandh, please post it as an answer below, not a comment, so you might get credit for it. And read this.
And use the 'bbox', 'crop' option of imrotate() to keep the final image the same size.
That method is okay if the background is perfectly uniform gray level and there are no pixels of that gray level inside the leaf. Otherwise it's not 100% robust, since it rotates the background as well as the leaf, and sets black pixels that may be inside the leaf to white.
And see my attached demo if you want to find the farthest points so you know the angle you need to rotate by.
Gopichandh Danala
2016-9-16
Thanks image analyst i will do as u suggested from now..
Malan Jayanka
2016-9-18
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Image Segmentation and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




