2013-09-30 3 views
1

이미지를 읽고 더 큰 이미지에 붙여 넣으려고합니다. 나중에는 다른 이미지 (높이와 너비가 동일)를 붙여 넣습니다. 나는 Matlab에서 경험이 없다고 말하면서 어떤 제안이라도 환영한다.Matlab : 더 큰 이미지에 RGB 이미지 붙여 넣기

지금은 더 큰 0 행렬을 만들고 이미지의 요소 (RGB)를 이미지에 붙여 넣습니다. 내가 원하는 것 그러나 그것은 그것은 주로 흰색 이미지를 보여줍니다 표시되지 않는 :

더 큰는 더 큰 이미지

[im1 map1] = imread('/12937.png'); 
[height width rgbsize]=size(im1) 
bigger=zeros(height+200,width+200,3); 
figure('name','original');imshow(im1) %displays my image correctly 
bigger(1:height,1:width,:)=im1(:,:,:); 
figure('name','after');imshow(bigger); %displays a mostly white image with dark right and bottom borders (the extra size) 

답변

1

이미지의 일부 기능은 데이터 유형에 민감의 이름입니다. imread은 uint8 유형의 행렬을 제공하지만, 기본적으로 zeros은 double 유형의 행렬을 제공합니다. imshow (또는 image 또는 imagesc)은 모든 이중 데이터와 함께 작동 할 수 있지만 [0,255] $에서는 [\ 0]이 아니라 [\ 0,1 \]에 $ \를 입력해야합니다.

이 시도 :

[im1 map1] = imread('/12937.png'); 
[height width rgbsize]=size(im1) 

% note: initialise the data type as well as the size 
bigger=zeros(height+200,width+200,3, 'uint8'); 

figure('name','original');imshow(im1) 
bigger(1:height,1:width,:)=im1(:,:,:); 
figure('name','after');imshow(bigger); 

당신은 명령 whos, 또는 GUI의 작업 영역 부분에서 찾고 있습니다 어떤 종류의 IM1 확인할 수 있습니다. uint8이 아니면 zeros 명령을 적절하게 조정하십시오.

+0

Perfect! 그것은 작동합니다! 고맙습니다! – fersarr

관련 문제