Resizing two images to the same pixel dimensions without aspect ratio distortion

16 ビュー (過去 30 日間)
Simon
Simon 2012 年 7 月 9 日
Hi All,
I have two images with the object of focus in the centre of each. I then need to crop around these (basically to save time during my analysis porgram). The problem then becomes the cropped images are different sizes - in terms of pixel value.
I am trying to get transects from the same positions along each object, and if the sizes are different, the transects will be in the wrong place, and if the aspect ratio changes this corrupts the correct data.
I haven't been able to find a way to resize one image to the other without losing the aspect ratio of whichever image that was resized.
To resize the images I used:
[rowsA colsA RGBA]=size(A);
[rowsB colsB RGBB]=size(B);
C=imresize(b,[rowsA colsA]); % i used C so I could compare the resized image to the original.
Thank you all for any help or ideas.
Simon
  4 件のコメント
Mariappan
Mariappan 2013 年 2 月 18 日
In this above code, what it is "b"???
Walter Roberson
Walter Roberson 2013 年 2 月 18 日
It should probably read "B"

サインインしてコメントする。

回答 (4 件)

Thorsten
Thorsten 2013 年 2 月 18 日
You have found no way because there is no way. If you resize an image A to match the size of another image B the aspect ratio of the resulting image is the aspect ratio of B.

Jurgen
Jurgen 2013 年 2 月 18 日
Your question is: Can I change the aspect ratio of A to fit that of B without changing the aspect ratio of A? It makes no sense!
Just fix the size of the cropping area to avoid uneven ARs. Resizing only works if both dimensions of A are integer multiples of B, which im guessing isnt the case here.

Image Analyst
Image Analyst 2013 年 2 月 18 日
I know this is a really old, obsolete thread, but question should read "How can I change the magnification of Image B to match that of image A?" If the camera moved closer or farther away, the image size in pixels will remain the same, say 1600x900 pixels, but the image of the fish will become larger or smaller. Simon has found the fish in each large image, and cropped it out, so he now has two smaller cropped images. A simple resize like Simon proposed should work. For example, a circle cropped out of image A is 100 by 100 pixels. Now let's say we have different magnifications for each direction in the second image and the circle now appears as an ellipse of a different size, 150 by 50. If you resize this 150x50 image to 100x100, it will now appear as a circle like it should.

Simon
Simon 2013 年 2 月 19 日
Hi All, thank you for your comments. And my apologies for the terrible phrasing of my question. I appreciate your help. In the end, I simplified my problem, just turning total body length into 100%, and then sampling at different percentiles along the bodies of the fish (e.g. distance from nose to tail = 100%, so sample at 10% of this, 20%, 30% etc.), rather than try to make each body size equal in size and AR. But I am going to go back and try the suggestion from Image Analyst, to see if this would have solved my problem. Should i be closing this problem now, or leave it open in case others have ideas and or thoughts? (It's my first and only post so far on the mathworks site)
Thanks again.
Simon

カテゴリ

Help Center および File ExchangeImage Segmentation and Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by