2017-03-28 2 views
0

Wie erstellen Sie ein Bild Overlays? ändere die Kantenfarbe: Um die Kanten zu grün zu machen, habe ich zuerst 'sobel' verwendet, aber der Overlay-Teil hat einen Fehler: "IMG muss ein Array von Graustufen- oder RGB-Bildern sein: writeVideo (writer, double (out)); " Warum?Wie erstellen Sie Bild-Overlays? Kanten ändern Farbe

out_red(BW)=0; 
    out_green(BW)=255; 
    out_blue(BW)=0; 


    writeVideo(writer,double(uint8(out))); 


close(writer); 

Antwort

1

Sie die gesamte img wie jeder Farbkanal versehentlich gesetzt, es so, dass stattdessen sein sollte:

out_red=img(:,:,1); 
out_green=img(:,:,2); 
out_blue=img(:,:,3); 

und das Ende tun writeVideo(writer, uint8(out));

0

Versuchen Sie Folgendes:

redChannel = inputImage(:, :, 1); 
greenChannel = inputImage(:, :, 2); 
blueChannel = inputImage(:, :, 3); 
writeVideo(writer, uint8(out)); 

Die writeVideo Klasse erwarten Daten uint8, wenn ihre Reichweite ist {0, 1, 2, ..., 255}.
Wenn Sie single oder double Daten verwenden möchten, müssen Sie sie zurück auf [0, 1] Bereich skalieren.

+0

von so tut es ein Fehler: „IMG muss sein ein Array von entweder Graustufen- oder RGB-Bildern "dann habe ich das versucht:" writeVideo (writer, double (uint8 (out))); " aber immer noch der Fehler: "IMG muss ein Array von Graustufen oder RGB-Bildern sein". Warum? – hme

+0

Bitte teilen Sie den ganzen Code und wir werden sehen. – Royi

+0

Ich teilte den Code. – hme