2014-02-12 2 views
0

동일한 크기의 여러 이미지에서 배경 모델을 만들려고합니다. 이 모델을 사용하여 롤러 벨트 (배경 모델)에서 움직이는 물체를 분할하고 싶지만이 방법을 잘 모르겠습니다.여러 이미지에서 배경 모델 만들기

롤러 벨트를 나타내는 4 개의 이미지로 배경 모델을 계산하는 방법은 무엇입니까?

각 벨트 이미지의 평균을 계산하고이를 더하고 이미지 수로 나눠서 생각했습니다. 그러나이 경우 전체 배경에 대해 하나의 값이됩니다. 제공된 4 개의 이미지를보고 각 픽셀의 평균을 계산하려면 어떻게합니까?

+0

은 정말 당신이 달성하려고하는 것을 이해하지 않습니다. 4 개의 이미지 모두 평균을 계산 하시겠습니까? 따라서 결과 이미지의 첫 번째 픽셀에는 각 이미지의 모든 첫 번째 픽셀의 평균이 포함됩니다. – Daniel

+0

정확하게 달성하려면 다음을 시도하십시오. – jaspernorth

+0

샘플 이미지를 추가하면 답변을 얻을 확률이 크게 높아집니다. –

답변

2
%some example data 
A{1}=imread('http://dummyimage.com/600x400/00a/fff.jpg&text=a'); 
A{2}=imread('http://dummyimage.com/600x400/00a/fff.jpg&text=b'); 
A{3}=imread('http://dummyimage.com/600x400/00a/fff.jpg&text=c'); 
A{4}=imread('http://dummyimage.com/600x400/00a/fff.jpg&text=d'); 

%make sure every image is of type double. Every uint type is possible as well, but requires casting at the end. 
for ix=1:numel(A),A{ix}=im2double(A{ix});end 


%concatinate on ndims+1, which means 4th dimension for color images and third dimension for grey scale images.  
I=mean(cat(ndims(A{1})+1,A{:}),ndims(A{1})+1); 
imshow(I); 
+0

이것은 그 것이다! 감사합니다 @ 다니엘 – jaspernorth

0

이미지가 im1, im2, im3, im4 인 경우 세 번째 차원의 평균을 계산합니다.

% concatenate the images to a single 3-D stack. 
im = cat(3,im1,im2,im3,im4); 

% find the mean of each pixel. 
meanIm = mean(im,3); 
+0

이 코드는 double 유형의 그레이 스케일 이미지 만 처리 할 수 ​​있습니다. – Daniel

관련 문제