How to crop image by specific size and location ?

22 visualizzazioni (ultimi 30 giorni)
Dear Matlab experts,
I want to crop an image by specific size (64x64) and location. but the result is not correct
Could anyone help me ?
My step is:
  1. Detect the centroid of image
  2. Cropimage
I=imread('2_mask.png')
I2 = imcrop(I,[739.72-32 406.02+32 739.72+32 406.02-32]);
The problem is: the cropped image (I2) is 375x393 [pixel] not 64x64 [Pixel]. The area is bigger than what i expext
This is Cropped image I2 but the size is 375x393 [pixel]
Thanks
Han

Risposta accettata

DGM
DGM il 13 Mag 2022
Modificato: DGM il 13 Mag 2022
The rect parameter given to imcrop is [xoffset yoffset xwidth ywidth]
I = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/996600/2_mask.png');
I2 = imcrop(I,[739.72-32 406.02-32 64 64]);
imshow(I2)
... although you may find out that you have to subtract 1px from the widths if you actually want a specific output size. This behavior is explained in the help for imcrop().
I2 = imcrop(I,[739.72-32 406.02-32 63 63]); % this will be 64x64 instead of 65x65

Più risposte (0)

Categorie

Scopri di più su Images in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by