I have a dataset of 3d images containing 30 images of different sizes,I want to resize all images to a paricular size
for example for 2d if we use imresize(I,[25 256]) all images in dataset will be resized
same way i tried for 3d using
J = resize(I,size(I).*[0.3 0.3 1])
but it is not reduced to a particular size,i need all images to have same size
say 256x256x3
please help

 採用された回答

Image Analyst
Image Analyst 2012 年 8 月 29 日

0 投票

If it's a color image (as opposed to a volumetric image, as from CT or MRI), you do it exactly the same way as for a gray scale image. No difference at all in the arguments to imresize.
rgbImage256 = imresize(rgbImage, [256 256]);

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2012 年 8 月 29 日
編集済み: Andrei Bobrov 2012 年 8 月 29 日

1 投票

try this code
A = randi(255,89,300,3,'uint8'); % eg first image
B = randi(255,100,200,3,'uint8'); % eg second image
AA = {A,B};
out = cellfun(@(x)imresize(x,[256 256]),AA,'un',0);

3 件のコメント

kash
kash 2012 年 8 月 29 日
i have a code as for 3d image as per ur code for single image
D=imread('peppers.png');
size(D);
D=uint8(D);
X={D};
out = cellfun(@(x)imresize(x,[256 256]),X,'un',0)
wen displaying as imshow(out) i get error as
Error using iptcheckinput
Function IMAGEDISPLAYVALIDATEPARAMS expected its first input, I,
to be one of these types:
double, single, uint8, uint16, uint32, int8, int16, int32, logical
Instead its type was cell.
Andrei Bobrov
Andrei Bobrov 2012 年 8 月 29 日
編集済み: Andrei Bobrov 2012 年 8 月 29 日
just for one image, my variant in answer for multiple image
D=imread('peppers.png');
out = imresize(D,[256 256]);
kash
kash 2012 年 8 月 29 日
Thanks andre1

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

カテゴリ

ヘルプ センター および File Exchange で Read, Write, and Modify Image についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by