Ich habe versucht, das Masami-Broadcast-Video wie IPPON Grand Prix (OpenCV: Python-Version) zu machen.

Auslösen

Als ich versuchte, die Zeichen im Video zu binarisieren, wurden wahrscheinlich nur die Person und der Telop extrahiert, weil sich der Hintergrund nicht in der natürlichen Umgebung befand und nichts reflektiert wurde, aber wenn die Hintergrundfarbe gelb war Ich dachte, es würde wie ein IPPON Grand Prix aussehen, also habe ich es implementiert.

Entwicklung von

import cv2
import numpy as np

if __name__ == '__main__':

	cap = cv2.VideoCapture('one_minutes.mp4')

	cap_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
	cap_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
	fps = cap.get(cv2.CAP_PROP_FPS)

	telop_height = 50

	fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
	writer = cv2.VideoWriter('threshold_raw.mp4',fourcc, fps, (cap_width, cap_height + telop_height))

	kernel = np.ones((3,3),np.uint8)

	count = 0
	try :
		while True:
			if not cap.isOpened():
				break

			if cv2.waitKey(1) & 0xFF == ord('q'):
				break

			ret, frame = cap.read()

			if frame is None:
				break

			frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
			ret2, frame = cv2.threshold(frame, 0, 255, cv2.THRESH_OTSU)

			#Schrumpfen->Erweiterung
			frame = cv2.morphologyEx(frame, cv2.MORPH_OPEN, kernel)

			background = np.zeros((cap_height, cap_width, 3), np.uint8)
			background[:] = tuple((80,235,247))

			telop = np.zeros((telop_height, cap_width, 3), np.uint8)
			telop[:] = tuple((128,128,128))

			#Einmal monochrom(dim=1)Aus Farbe(dim=3)Umstellung auf
			frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR)
			#Hintergrundfarbe und Zusammensetzung
			frame = cv2.bitwise_and(frame, background)

			images = [frame, telop]

			frame = np.concatenate(images, axis=0)
			font = cv2.FONT_HERSHEY_SIMPLEX
			cv2.putText(frame, "{:.4f} [sec]".format(round(count/fps, 4)), 
						(cap_width - 250, cap_height + telop_height - 10), 
						font, 
						1, 
						(0, 0, 255), 
						2, 
						cv2.LINE_AA)

			writer.write(frame)
			count += 1

	except cv2.error as e:
		print(e)	

	writer.release()
	cap.release()

Ergänzung

ret2, frame = cv2.threshold(frame, 0, 255, cv2.THRESH_OTSU) Es ist binärisiert mit. Hier wird der Otsu-Algorithmus verwendet.

frame = cv2.morphologyEx(frame, cv2.MORPH_OPEN, kernel) Wenn Sie nun das binärisierte Bild verkleinern-> vergrößern, werden die weißen Flecken im Stadium der Kontraktion schwarz ausgefüllt, um das Rauschen zu entfernen.


background = np.zeros((cap_height, cap_width, 3), np.uint8)
			background[:] = tuple((80,235,247))
background[:] = tuple((80,235,247))

#Einmal monochrom(dim=1)Aus Farbe(dim=3)Umstellung auf
frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR)
#Hintergrundfarbe und Zusammensetzung
frame = cv2.bitwise_and(frame, background)

Erstellt eine einzelne gelbe Hintergrundfarbe und kombiniert sie mit dem binärisierten Bild mit "bitwise_and".

Ergebnis

Kein Öffnungsvorgang (keine Bearbeitung)

threshold_raw.gif

Mit Öffnungsprozess

threshold_open.gif

Es mag etwas verwirrend sein, aber wenn Sie sich die Namen der Parteien oben ansehen, können Sie sehen, dass das Geräusch verschwindet, wenn die Kontraktion verringert wird.

abschließend

Ich konnte die Objekte ziemlich sauber trennen, also werde ich das nächste Mal versuchen, die Zeichen zu extrahieren.

Link, auf den ich mich beziehen wollte

Recommended Posts

Ich habe versucht, das Masami-Broadcast-Video wie IPPON Grand Prix (OpenCV: Python-Version) zu machen.
Ich habe versucht, die Videowiedergabezeit anzuzeigen (OpenCV: Python-Version)
Ich habe versucht, das Gesicht aus dem Video zu erkennen (OpenCV: Python-Version)
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
[Python] Smasher hat versucht, den Video-Ladevorgang mithilfe eines Generators zu einer Funktion zu machen
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Fortsetzung ・ Ich habe versucht, Slackbot zu erstellen, nachdem ich Python3 studiert habe
[Python] Ich habe versucht, die Top 10 der Lidschatten grafisch darzustellen
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Python Open CV hat versucht, das Bild im Text anzuzeigen.
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
(Python: OpenCV) Ich habe versucht, einen Wert auszugeben, der den Abstand zwischen Regionen angibt, während das Video in Echtzeit binärisiert wurde.
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich habe versucht, die Unterschiede zwischen Java und Python aufzuzählen
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe versucht, das automatische Senden einer E-Mail durch Doppelklicken auf das Symbol [Python] zu ermöglichen
Ich habe versucht, den Unterschied zwischen A + = B und A = A + B in Python herauszufinden
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich möchte die HTML-Version der OpenCV 3.1-Version "OpenCV-Python Tutorials" lesen
[Python] Ich habe versucht, eine stabile Sortierung zu implementieren
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, das Bild mit OpenCV im "Skizzenstil" zu verarbeiten
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
Ich habe versucht, den auf Papier gestempelten Stempel mit OpenCV zu digitalisieren
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich habe versucht, das Bild mit OpenCV im "Bleistift-Zeichenstil" zu verarbeiten
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Einfaches Japanisch ⇒ Ich habe versucht, ein englisches Übersetzungswerkzeug zu erstellen
Ich habe versucht, ein Standbild aus dem Video auszuschneiden
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, Python zu berühren (Installation)
So erhalten Sie die Python-Version
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, das automatische Senden einer E-Mail durch Doppelklicken auf das Symbol [GAS / Python] zu ermöglichen
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
Python - Ich habe versucht, die umfassende Notation des Wörterbuchs in ihrer ursprünglichen Form wiederherzustellen.
Ich habe versucht, die Version 2020 mit 100 Sprachverarbeitung zu lösen [Kapitel 3: Reguläre Ausdrücke 25-29]
[Python] Ich habe versucht, den Pitcher zu analysieren, der keinen Treffer und keinen Lauf erzielt hat
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.