I have divided one image into subimages--how can I show the subimages lined up near each other?

4 views (last 30 days)
I have divided one image into four smaller images (subimages). How can I show the subimages like the original image, close to each other and with a line or a few pixels between them. I have tried subplot but it didn´t work.

Accepted Answer

Thorsten on 14 Feb 2013
Edited: Thorsten on 14 Feb 2013
This implements suggestion #4 of Image Analyst.
I = imread('peppers.png');
I = im2double(I);
Nsubimages = [4 3];
Nsp = 10; % number of separating pixels
sz = size(I);
sznew = [sz(1:2) + (Nsubimages - 1)*Nsp size(I, 3)];
Inew = repmat(1, sznew);
ind1 = round(linspace(1, sz(1), Nsubimages(1) + 1));
ind2 = round(linspace(1, sz(2), Nsubimages(2) + 1));
for i = 1:length(ind1)-1
for j = 1:length(ind2)-1
i1 = ind1(i):ind1(i+1);
i2 = ind2(j):ind2(j+1);
Inew(i1 + (i-1)*Nsp, i2 + (j-1)*Nsp, :) = I(i1, i2, :);
subplot(1,2,1), imshow(I)
subplot(1,2,2), imshow(Inew)
Pradeep Gowda
Pradeep Gowda on 26 Aug 2015
the code for dividing is nice but is there a way to display the contents of cell variable B{} like a single image after finishing our analysis?

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 14 Feb 2013
You can either
  1. show the original image (no lines/gaps), or
  2. save the images to files and use montage() (again, no lines or gaps), or
  3. you can use a GUI (like use GUIDE) and place 4 axes really close to each other and use imshow() to display the images in the axes, or
  4. make a larger image and use regular, normal indexing to assign the sub images into the proper location in the larger image.
Randy Souza
Randy Souza on 14 Feb 2013
@Image Analyst: Teemu was not actually deleting questions, but was simply including the entire question in the title and entering ";" as the body.
See also the comments on this question.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!