MATLAB: Change size and format of images

Image Processing Toolboxrenameresize

I have a medical images dataset with various sizes and formats . I want to downsample all of them into 256*256 without loosing information and change all the formats into png

Best Answer

  • Assuming all the image formats (list required!) are supported by matlab, the process for each image would be:
    originalimage = imread(someimagefile);
    resizedimage = imresize(originalimage, [256 256]);
    imwrite(resizedimage, newfilename);
    To apply that to a bunch of images, see How do I process a sequence of files.
    Note that there are many image viewers that can do the conversion for you without you having to write a single line of code. For example, IrfanView has a batch conversion mode which can also resize images at the same time. All you'd have to do is select the images, turn resizing on and specify the final size and tell it to convert the images to png.
    Also note:
    "I want to downsample"
    "without loosing information"
    These two statements are incompatible. By definition, if you downsample you're voluntarily discarding information.
  • Related Question