Füllen Sie den Hintergrund mit einer einzigen Farbe mit OpenCV2 + Python

Als ich den Bildschirm mit OpenCV initialisierte, wollte ich den Hintergrund einfärben, aber ich hatte mehr Probleme als erwartet, also machte ich mir eine Notiz.

Was ist in diesem Artikel zu tun?

Punkte, mit denen man kämpfen muss

In Grundlegende Verarbeitung von cv :: Mat verwendet OpenCV1 eine Struktur namens IplImage als Bilddaten, während OpenCV2 cv :: verwendet. Es wurde geändert, um eine Klasse namens Mat zu verwenden.

In OpenCV1 wird es von cvCreateImage initialisiert, aber der Punkt ist, was mit OpenCV2 zu tun ist.

Im Fall von Python kann die Sequenzstruktur von numpy so verwendet werden, wie sie ist. Ich dachte, es wäre einfach, wenn ich mich erst einmal daran gewöhnt hätte, aber ich bin nicht daran gewöhnt, sodass ich nicht weiß, was ich mit dem C-Beispiel von OpenCV1 machen soll.

Ich habe verschiedene Dinge recherchiert und ausprobiert

Als ich ins Internet ging, gab es verschiedene Methoden, also habe ich versucht, sie zu arrangieren. Bei der Anzeige von Bildern mit OpenCV ist die Reihenfolge der Farben übrigens BGR.

example_colorfill.py


# coding: UTF-8
import numpy as np
import cv2


#10 x 10 3 Schichten(BGR)Definieren
size = 10, 10, 3

# cv2.Füllen Sie rot mit fillPoly aus
red_img = np.zeros(size, dtype=np.uint8)
contours = np.array( [ [0,0], [0,10], [10, 10], [10,0] ] )
cv2.fillPoly(red_img, pts =[contours], color=(0,0,255))

# cv2.Füllen Sie blau mit Rechteck
blue_img = np.zeros(size, dtype=np.uint8)
cv2.rectangle(blue_img,(0,0),(10,10),(255,0,0),cv2.cv.CV_FILLED)

# np.Füllen Sie Weiß mit Füllung
white_img = np.zeros(size, dtype=np.uint8)
white_img.fill(255)

# np.Füllen Sie grün mit Fliesen
green_img = np.tile(np.uint8([0,255,0]), (10,10,1))

#Füllen Sie grau mit 10 x 10 einzelnen Abstufungen
gray_img = np.tile(np.uint8([127]), (10,10,1))

#Füllen Sie die Liste von Anfang bis Ende in lila
#Referenz: http://stackoverflow.com/questions/4337902/how-to-fill-opencv-image-with-one-solid-color
purple_img = np.zeros(size, dtype=np.uint8)
purple_img[:] = (255, 0, 255)

#Konvertieren Sie die RGB-Sequenz in BGR und füllen Sie sie gelb aus
yellow_img = np.zeros(size, dtype=np.uint8)
rgb_color = (255,255,0);
yellow_img[:] = tuple(reversed(rgb_color))

cv2.namedWindow("yellow image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("yellow image",yellow_img)
cv2.namedWindow("purple image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("purple image",purple_img)
cv2.namedWindow("gray image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("gray image",gray_img)
cv2.namedWindow("green image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("green image",green_img)
cv2.namedWindow("white image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("white image",white_img)
cv2.namedWindow("red image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("red image",red_img)
cv2.namedWindow("blue image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("blue image",blue_img)
cv2.waitKey(0)

Bei der Ausführung werden die mit jeder Farbe gefüllten Bilder angezeigt.

Empfohlen

Ich denke, es ist entweder eine Methode zum Füllen mit 0 zuerst und zum Füllen mit Farbe durch Listenoperation oder eine Methode zum Füllen mit Farbe von Anfang an mit np.tile.

In beiden Fällen scheint es nicht mit C ++ kompatibel zu sein.

Recommended Posts

Füllen Sie den Hintergrund mit einer einzigen Farbe mit OpenCV2 + Python
Die Farbextraktion mit Python + OpenCV löste das Rätsel des grünen Hintergrunds
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Erstellen Sie eine Farbleiste mit Python + Qt (PySide)
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Der einfachste Weg, OpenCV mit Python zu verwenden
Binarisierung mit OpenCV / Python
[Python] Erstellt eine Klasse, um mit pyaudio Sinuswellen im Hintergrund zu spielen
Machen Sie mit Python einen Haltepunkt auf der c-Ebene
Schreiben Sie mit OpenCV-Python Zeichen in die Kartenillustration
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Automatisieren Sie das Entfernen des Hintergrunds für die neuesten Porträts in einem Verzeichnis mit Python und API
[Python] Verwenden von OpenCV mit Python (Basic)
Füllen Sie die JOI-Schwierigkeit 4 mit Python
Machen Sie eine Lotterie mit Python
Gesichtserkennung mit Python + OpenCV
Rufen Sie die API mit python3 auf.
Erstellen Sie ein Verzeichnis mit Python
Verwenden von OpenCV mit Python @Mac
Ich habe das Windows PowerShell-Kochbuch durch ein Python-Skript ersetzt.
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ein Hinweis zum Aufrufen der Facebook-API mit dem Python SDK
Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
Erkennen Sie mit Python Objekte einer bestimmten Farbe und Größe
Das Graustufenbild wird in OpenCV / Python als Farbbild angezeigt
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Erstellen Sie mit python wxpython + openCV ein einfaches Videoanalysetool
Schätzen Sie die Haltung des AR-Markers mit Python + OpenCV + Drohne
Leuchtendes Leben mit Python und OpenCV
[Python] Was ist eine with-Anweisung?
Löse ABC163 A ~ C mit Python
Extrahieren Sie die xz-Datei mit Python
Python-Grafikhandbuch mit Matplotlib.
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Neuronales Netzwerk mit OpenCV 3 und Python 3
Färben Sie das Integrationsintervall mit matplotlib.pyplot
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Lassen Sie uns eine GUI mit Python erstellen.
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Erstellen Sie eine gestreifte Illusion mit Gammakorrektur für Python3 und openCV3
Holen Sie sich das Wetter mit Python-Anfragen
Erstellen Sie eine virtuelle Umgebung mit Python!
Holen Sie sich das Wetter mit Python-Anfragen 2
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Ich habe mit Python eine Lotterie gemacht.
[Python] Passen Sie den Standard für die Farbkarte an
Hintergrundunterschied, Python, Mog, gmg, opencv3.1
Finden Sie die Bearbeitungsentfernung (Levenshtein-Entfernung) mit Python
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
Erstellen einer virtuellen Umgebung mit Python 3
Einfache Python + OpenCV-Programmierung mit Canopy
Mit OpenCV die einfachsten Fehler finden
Klicken Sie mit Python auf die Etherpad-Lite-API
Installieren Sie das Python-Plug-In mit Netbeans 8.0.2