MATLAB: Rotate Image segment without background

image processingImage Processing Toolboximage rotation

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

Best Answer

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,'crop'); % rotate by 45 or 315 degrees
figure, %imshow(rotateImg);
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.