2016-07-11 2 views
1

Ich versuche, eine Karikatur oder Skizze Effekt durch opencv in Android zu erstellen, für die ich die Logik bin mit in den Von dassCartoon-Effekt in android OpenCV (Notwendigkeit von grau zu Farbe konvertieren)

Website erklärt ich versuche, in android .Hier zu schaffen, ist mein Code

public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { 
     Imgproc.bilateralFilter(inputFrame.gray(),co,9, 9, 7); 

     Imgproc.medianBlur(inputFrame.gray(),gray, 7); 
     Imgproc.adaptiveThreshold(gray,gray, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C,Imgproc.THRESH_BINARY,9,2); 

     Core.bitwise_and(co,gray,mOutputFrame);//ADDS THE BOTH IMAGES 

    return mOutputFrame; 
} 

das funktioniert aber die Ausgabe ist in GRAY. was tun, um dies zu bekommen in FARBE?

Antwort

0

Von der documentation der CameraBridgeViewBase.CvCameraViewFrame gibt die Methode gray() ein graues Bild aus dem Rahmen zurück. Wenn Sie es also in rgba() ändern, wird das RGB-Farbbild an die von Ihnen verwendeten Filter zurückgegeben.

+0

Wenn grau() durch rgba() ersetzt wird, stürzt die App ab –

+0

Weil 'Imgproc.adaptiveThreshold' auf einem 1-Kanal-Bild und nicht auf einem Farbbild arbeitet. Sie können jeden Kanal unabhängig verarbeiten und dann zusammenführen. –

+0

'Imgproc.cvtColor (inputFrame.gray(), co, Imgproc.COLOR_BGR2GRAY); Imgproc.bilateralFilter (co, co, 9, 9, 7); Imgproc.medianBlur (inputFrame.gray(), grau, 7); Imgproc.adaptiveThreshold (grau, grau, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.TRESH_BINARY, 9,2); Imgproc.cvtColor (co, co, Imgproc.COLOR_GRAY2RGB); Core.bitwise_and (co, grau, mOutputFrame); ' –

Verwandte Themen