matlabmatlab-figuresave-image

Save concatenated images in MATLAB


I am trying to concatenate two 256x256 images and save them using imwrite. The saved image is supposed to be 256x512, but when I load the saved image, the size shows to be 343x434x3. How do I solve this?

the code I am using is:

new_name3 = strcat(f_name_image, '\', kk, '_', num2str(ff), '_pair.png');
pair = [orig_im  noisy_image]; %concatenating two 256x256 images
imagesc(pair)
f = getframe(gca);  
im = frame2im(f);
imwrite(im, new_name3);

Image


Solution

  • Saving the image from the frame can be lossy without configuring additional options. To retain the pixel information save the concatenated image directly from the pair (here Image_Pair) array. Also, the third dimension in 343x434x3 represents the RGB colour channels of the image.

    %Grabbing the two images%
    Image_1 = imread('Image_1.jpeg');
    Image_2 = imread('Image_2.jpeg');
    
    %The file name for the concantenated images%
    New_File_Name = "Image_3.jpeg";
    
    %Concatenating the images%
    Image_Pair = [Image_1 Image_2];
    
    %Displaying the image pair%
    imshow(Image_Pair);
    
    %Saving the image to the "New_File_Name"%
    imwrite(Image_Pair, New_File_Name);
    
    %Loading the saved image to see if dimensions are consistent%
    Saved_Image = imread('Image_3.jpeg');