2016-04-26 13 views
0

I-Werte von vorherigem Frame zugewiesen werden soll, wobei die Werte in nächsten Frame NullZuweisen von Werten zu Bildpixeln

if (n_image(:,:,1)==0 && n_image(:,:,2)==0 && n_image(:,:,3)==0) 
       n_image(:,:,1)=grabbed_image(:,:,1); 
       n_image(:,:,2)=grabbed_image(:,:,2); 
       n_image(:,:,3)=grabbed_image(:,:,3); 
end 

ERROR:

Operands to the || and && operators must be convertible to logical scalar values.

Antwort

1

Sie sind verwirrend logische Bedingungen mit logischer Indizierung

to_replace = all(n_image == 0, 3); %// logical index for pixels to be replaces 
n_image = bsxfun(@times, n_image, ~to_replace) + bsxfun(@times, grabbed_image, to_replace); 

Verwendung der Indexierung anstelle der Multiplikation

to_replace = to_replace(:,:,[1 1 1]); %// replicate logical indices to channel dimension 
n_image(to_replace) = grabbed_image(to_replace); 
+0

was macht die erste Zeile? –

+0

@HrishabhPrajapati sucht nach allen Pixeln, die Null sind über die dritte Dimension – Shai

+0

@ Shai Ich versuche Ihren Code, ich bekomme Objekt, aber (auf den Pixeln), wo der Wert 0 ist Ich bekomme weißen Hintergrund, nicht den vorherigen Hintergrund. –

Verwandte Themen