2017-08-30 1 views
0

Ich habe ein Bild und ich möchte Teile davon mit OpenCV einfach entfernen (oder maskieren). dies ist mein ursprüngliches Bild:

enter image description here

Und ich möchte einen Kreis auf seinem Zentrum über diese Bildmaske entfernen:

enter image description here

ich diesen Befehl in meinem Code verwenden, die von den Tutorials, die ich gelesen aus einem Kreis arbeiten und schwarz in der Mitte meiner ursprünglichen Bild sollte:
Entfernen von Teilen des Bildes mit OpenCV

img = cv2.bitwise_not(imgOriginal,imgOriginal,mask=imgMask) 

aber das Ergebnis, das ich bekommen, ist das Bild unten, und zwar anstelle der maskierten Teile entfernt werden, es ist nur in verts Schwarzen und Weißen:

enter image description here


Ich werde schätzen, wenn Sie mich auf der Suche nach einem Weg helfen können, um richtig zu maskieren (oder entfernen) die Teile ich will.
Dank

+0

„invertiert er nur Schwarz und Weiß "- Natürlich tut es, du hast gesagt, es soll nur in den Bereichen, in denen die Maske weiß ist, nicht (dh invertieren) gehen und den Rest unberührt lassen. –

+0

Was ist Ihr Wunschergebnis? – beaker

Antwort

1

Versuchen Sie folgendes:

//given source, mask and destination Mat images with same size 
cv::subtract(img, mask, dst); 

enter image description here

1

Try Pixel auf die Hintergrundfarbe unter Verwendung einer Maske, wie dies einzustellen:

img.setTo(Scalar::all(0),mask); 
Verwandte Themen