2010-12-02 4 views
0

다른 크기의 이미지가 두 개있는 경우 두 개의 이미지 크기의 합과 동일한 크기의 창을 가진 것처럼 할 수 있습니까? 창 (크기) = 이미지의 image1에 + 크기의 크기는 2 이 창에서이 마법사를 붙여보다가 가능하다 ..... 공동 을 보여? 당신이 구성 할 소리를 어떻게다른 크기의 이미지가 두 개있는 경우

+0

가능한 중복 [하나의 창 matlab에 두 이미지를 결합하는 방법?] (http://stackoverflow.com/questions/4037779/how-to-combine-two-images-on-one-window- matlab) – gnovice

+0

@gnovice 크기가 동일하지 않으므로 정확히 중복되지 않습니다. – Shai

답변

2

당신의 설명보다는 예 경우 두 이미지의 블록 대각 행렬은 결과의 크기가 크기의 합이 될 것이기 때문에 (각 차원을 따라). 오프 대각선 블록은 0으로 채워 있습니다 물론

img1 = randn(70,100); 
img2 = randn(50,110); 
img = blkdiag(img1,img2); 
imshow(img) 

: 그것을 할 수있는 방법은 blkdiag 기능을 사용하는 것입니다.

편집 : 그것은 더 이상 이미지와 같은 높이가되도록하여 정제 된 질문에 응답

, 당신은 패드에 0으로 짧은 영상이있다. 그런 다음 이들을 나란히 연결할 수 있습니다. 내가 수평으로 두 이미지를 결합하는이 코드를 작성했습니다

h1 = size(img1, 1); 
[h2, w2] = size(img2); 
img2a = [img2; zeros(h1-h2, w2)]; 
img = [img1, img2a]; 
+0

하지만 나는 horizantally 이미지를 조인하고 싶다. – chee

+0

하지만 크기를 크기의 합계로 원한다고하셨습니다. 수평으로 결합하면 결과는 더 길지 만 합계가 아닙니다. 달성하려는 내용을보다 자세하게 설명하십시오. –

+0

ok 네가 맞아 .... 내가 원하는 것은 image1 = 250x320, image2 = 220x320 ....의 더 긴 height.if 크기를 가진 결과 이미지이다. 결과 이미지의 크기는 250x640이어야한다. – chee

2

: img1 가정하면이 같이 보일 것 이상 입니다. img1과 img2는 그레이 스케일이어야합니다.

function [ output_args ] = sideBySideImage(img1, img2) 
%UNTITLED Summary of this function goes here 
% Detailed explanation goes here, expects a black and white images 


    [r1, c1] = size(img1); 
    [r2, c2] = size(img2); 

    if r1<r2 %rows in first img are less, so we add some rows in it 
     temp_row = zeros(1,c1); 
     while r1~=r2 
      img1 = [img1; temp_row]; 
      [r1, c1] = size(img1); 
      [r2, c2] = size(img2); 
     end 
    elseif r1>r2 %rows in second img are less, so we add some rows in it 
     temp_row = zeros(1,c2); 
     while r1~=r2 
      img2 = [img2; temp_row]; 
      [r1, c1] = size(img1); 
      [r2, c2] = size(img2); 
     end 
    end 



    output_args = [img1, img2]; 

end 
관련 문제