Crop image without change aspect ration of original image

3 vues (au cours des 30 derniers jours)
Malan Jayanka
Malan Jayanka le 9 Oct 2016
Commenté : Image Analyst le 9 Oct 2016
I want to do these kind of conversion. Output image must be 256*256 pixel. I want to crop image and remain the main leaf part in the output image without change the aspect ratio of original image. Is this possible in matlab?

Réponses (1)

Walter Roberson
Walter Roberson le 9 Oct 2016
imcrop() and pass a rectangle whose width and height are 256, 256. A section that size will be extracted. The pixel sizes will not have changed, so the aspect ratio of the extracted area will be 1:1 . If you are displaying it afterwards, give the command
axis equal
or
axis image
You do not even need imcrop for this purpose: you can do it by plain array indexing
Extracted = YourImage(First_row : First_row + 255, First_column : First_column + 255, :);
  2 commentaires
Malan Jayanka
Malan Jayanka le 9 Oct 2016
Modifié(e) : Malan Jayanka le 9 Oct 2016
I have used crop function but I got output like this
But I want to get whole leaf part into 256*256 region
[rgbImage,map] = imread('DSC_0001.jpg');
[heigth,width,dim] = size(rgbImage);
cropedImage = imcrop(rgbImage,map,[2000 1000 256 256]); imshow(cropedImage);
Also plz give me example how to use axis equal
Image Analyst
Image Analyst le 9 Oct 2016
Then that portion is not 256x256 - it's bigger. So crop out a bigger portion, then use imresize() to shrink it down.
croppedImage = imcrop(rgbImage,map,[2000 1000 512 512]);
croppedImage = imresize(croppedImage, [256,256]);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Geometric Transformation and Image Registration dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by