我有2張圖片。一個是背景圖像,另一個圖像具有相同的背景,但具有一些前景對象。我想從背景中提取前景物體。在matlab中進行簡單的減法運算是不夠的,因爲它會從前景圖像中減去背景圖像的RGB值(如下面的代碼所示)。從matlab中的背景提取前景
im1 = imread('output/frame-1.jpg')
im2 = imread('output/frame-7.jpg')
%# subtract
deltaImage = im1 - im2;
imshow(deltaImage)
因此,如果背景顏色是白色和前景對象是藍色,然後輸出(即deltaImage)自帶前景對象與橙色彩色與黑色背景。然而我想要的輸出是黑色背景顏色(即原來的顏色)的前景對象。我怎樣才能得到這個?我試圖用下面的代碼來做,但輸出圖像不正確。
im1 = imread('foreground.jpg')
im2 = imread('background.jpg')
[m n k]=size(im2);
deltaImage = zeros(m,n,3);
fprintf('%d %d %d.\n',m,n,k);
for l=1:k
for i=1:m-1
for j=1:n-1
if im1(i:j:l)~=im2(i:j:l)
deltaImage(i,j,l) = im1(i,j,l);
end
end
end
end
imshow(deltaImage)
- 背景圖像
如果像素相等,只減去背景圖像? – AnonSubmitter85
@hari_OM所以,你喜歡我的答案嗎?任何問題?註釋? –