2016-07-01 10 views
0

ich mit Pixeln eines anderen Bildes all schwarzen Pixel in einem Bild zu ersetzen versuchen ...schwarzen Hintergrund mit einem anderen Bild zu ersetzen

Dies ist der Code Ich habe so weit

imgFront = cv2.imread('withoutbackground.jpg') 
imgBack = cv2.imread('background.jpg') 

height, width = img.shape[:2] 

resizeBack = cv2.resize(imgBack, (width, height), interpolation = cv2.INTER_CUBIC) 

for i in range(width): 
    for j in range(height): 
     pixel = imgFront[j, i] 
     if pixel == [255, 255, 255]: 
      imgFront[j, i] = resizeBack[j, i] 

aber ich eine Fehlermeldung immer ist, die auf diesem Teil falsche Syntax sagt -

pixel = imgFront[j, i] 

, die seltsam ist, weil ich direkt an der opencv Dokumentation suchen und das ist, wie sie sagt, es zu tun ..

Antwort

-2

Ich glaube nicht, dass es möglich ist, einen .jpg Hintergrund transparent zu machen (siehe post: Transparent background in JPEG image.

Sie können stattdessen PNG oder GIF versuchen.

+0

Ich glaube nicht, dass er transparent machen will, aber mit einem anderen Bild ändern – VICTOR

+0

Sein ursprünglicher Code zeigte, dass er die Hintergrundpixel transparent machte und dann die Ausgabe in ein JPEG speicherte, und dann fragt er, warum der Hintergrund schwarz ist . –

0

Ihre Idee ist richtig, aber es gibt einige kleinere Fehler.

Zuerst in Zeile 3, soll es die Form des imgFront rechts ?:

height, width = imgFront.shape[:2] 

Zweiter sein, im Einklang if pixel == [255, 255, 255]: Sie es ändern soll:

np.all(pixel == [0, 0, 0]) 

als schwarze Farbe sollte (0.0.0)

Alles in allem funktioniert der folgende Code gut für mich:

import cv2 
import numpy as np 

imgFront = cv2.imread('withoutbackground.jpg') 
imgBack = cv2.imread('background.jpg') 

height, width = imgFront.shape[:2] 

resizeBack = cv2.resize(imgBack, (width, height), interpolation = cv2.INTER_CUBIC) 

for i in range(width): 
    for j in range(height): 
     pixel = imgFront[j, i] 
     if np.all(pixel == [0, 0, 0]): 
      imgFront[j, i] = resizeBack[j, i] 
Verwandte Themen