How to combine images horizontally of slightly different heights

조회 수: 10 (최근 30일)
Stephen Devlin
Stephen Devlin 2018년 6월 20일
댓글: Sina Zinatlou 2021년 2월 8일
Hi, I have a folder of images that I want to stitch together horizontally (it would be nice to know how to do it vertically too). The images are taken from cropping an image on a screen, but as an example I have chopped up a football image. I don't need to put the football back together seamlessly, but it would be good to have the images stitched back together so that the top edges of each pic are aligned and they are side by side, no stretching of an image in either dimension. It doesn't matter if it looks a bit haphazard as long as there is no stretching.
I have commented out what is giving the following error:-
Error using horzcat Dimensions of arrays being concatenated are not consistent.
Error in stitchy_02 (line 27) imageStitch = [cStitched_start, imageStitch];
Code:-
clear all
close all
clc
hFig=figure('units','normalized','outerposition',[0 0 1 1]);
pics=dir('/Users/imagexpertinc/Desktop/ball_pics/*.png')
amount=numel(pics)
cStitched_start=imread(pics(1).name);
sizes=zeros(amount,3)%preallocate a table for size data
for k=1 : amount
imageStitch=imread(pics(k).name);
set(0,'CurrentFigure',hFig)
subplot(2,amount,k);
imshow(imageStitch)
title(['Pic ' num2str(k)])
%%Determine Image Sizes
% sizes(k,:)=size(imageStitch)%length width dimension
% BiggerImage=max(sizes)
% SmallerImage=min(sizes)
%
%
% imageStitch=imread(pics(k).name);
% imageStitch = [cStitched_start, imageStitch];
% set(0,'CurrentFigure',hFig)
% subplot(2,2, 1:2);
% imshow(imageStitch);
%
end

채택된 답변

KSSV
KSSV 2018년 6월 20일
편집: KSSV 2018년 6월 20일
Read about imresize. Use imresize and get all the images to same dimensions.
files = dir('*.png') ;
N = length(files) ;
I = cell(N,1) ;
for i = 1:N
I1 = imread(files(i).name) ;
I{i} = imresize(I1,[526,134]) ;
end
I = cat(2,I{:}) ;
imshow(I) ;
  댓글 수: 2
Stephen Devlin
Stephen Devlin 2018년 6월 20일
편집: Stephen Devlin 2018년 6월 20일
Thank you KSSV, it works but with a bit of stretching,I'll go off to read about imresize (I had no idea there was a function for it)
Sina Zinatlou
Sina Zinatlou 2021년 2월 8일
unfortunately not working

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by