MATLAB Answers

How to join an image to multiple images with a loop?

7 views (last 30 days)
Hello everyone, I hope someone can help me,
My program is to build a puzzle, regardless of the order in which the piece is read, I am trying to do a test, with the images of each segmented piece, for example I have two images, one is from piece 1 and piece 2 out of a total of 12 pieces, that is 12 positions, I want them to be detected (I am trying to do so with an if but I don't know what arguments to add to read an image) are added to my background (A matrix of zeros ), this is my code.
P1 = imread ([path, '/ Piece1.jpg']);
P2 = imread ([path, '/ Piece2.jpg']);
[r, c, n] = size (P1);
matchs = zeros (r, c, n, 'uint8');
for i = 1: r
     for j = 1: c
        matchs (i, j,:) = P1 (i, j,:) + P2 (i, j, :);
figure, imshow (matchs)
This works to add images
but I want the program through some cycle to say if it is piece 1, if piece 2 is added, regardless of the order, and the puzzle is built.


Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 8 Aug 2019
If the number of columns are the same:
tallImage = [topImage; bottomImage];
If the number of rows are the same
wideImage = [leftImage, rightImage];
I'd start by constructing the horizontal bands first, then by stitching those bands together vertically to form the complete image. I imaging you can figure out how to put those lines in a loop where you read in the two images and stitch them together.


sara Cachique
sara Cachique on 8 Aug 2019
The number of columns is not the same, I guess because my piece is as follows (see attached image Piece1)
but the images are segmented in position, that is, if the overlays are not going to be on top of another, what I want is that, as soon as one is entered, it is added to the black board (see final attached image)
Join Image.JPG
I don't know if Is there any way to do this with an if loop, for example.
if P1 == 1, is it active or is being read
matchs (i, j,:) = P1 (i, j, :);
If P2 == 1
matchs (i, j,:) = matchs (i, j,:) + P2 (i, j, :);
or how to do this?
Image Analyst
Image Analyst on 9 Aug 2019
You have to locate the position first. Only then can you drop it in, or mask it in, to the proper location. Do you have an algorithm for that? Do you have coordinates of all the (x,y) locations of the perimeter of the piece? If you had those you could find out which pieces matched close to 1/4 of their points.
If you don't have your own algorithm, you could copy someone else's from here in VisionBibliography:

Sign in to comment.

More Answers (0)