Motive Unter So speichern Sie nur einen Teil eines langen Videos mit OpenCV habe ich das Bild des Masami-Broadcast-Videos als Datensatz verarbeitet, diesmal jedoch "inpaint" Versuchen Sie, das Objekt mit (Image Repair) zu löschen. Der Grund dafür ist, dass der Hintergrund eintönig ist und nichts außer dem Zeittelop und dem Plakat des Partynamens angezeigt wird. Ich dachte, es wäre einfach zu reparieren.
Dataset Hier verwenden wir anstelle des Videos die folgende Aufnahme.
Method Erstellen Sie im Voraus ein Maskenbild und füllen Sie den zu reparierenden Bereich (Löschen des Objekts) mit Weiß.
Nachdem,
cv2.inpaint(src,mask,1,cv2.INPAINT_TELEA)
Prozess mit.
Development
import cv2
import os
import numpy as np
def inpaint(src,top,bottom):
mask = np.zeros((*src.shape[:-1],1), dtype=np.uint8)
mask = cv2.rectangle(mask,
top,
bottom,
color=(255,255,255),
thickness=cv2.FILLED
)
dst = cv2.inpaint(src,mask,1,cv2.INPAINT_TELEA)
return dst
if __name__ == '__main__':
window_name = "Drop Out NHK"
mat = cv2.imread("capture_1.png ")
mat = cv2.resize(mat, None, fx = 0.5, fy = 0.5)
dst = inpaint(mat,(200,40),(440,110))
dst = inpaint(dst,(40,25),(115,65))
cv2.imshow(window_name, dst)
cv2.waitKey(0)
cv2.destroyWindow(window_name)
Result
Ich konnte mehr verarbeiten als ich erwartet hatte. : heat_smile: Es ist kaum zu glauben, dass die Uhrzeit und der Name der Partei angezeigt wurden.
Future Entwicklungsnotiz Nr. 69 Verwenden von Inpaint mit OpenCV 3.2 mit Contrib-Modul Betrachtet man, scheint C ++ eine Funktion mit höherer Genauigkeit als "cv2.inpaint" zu haben. Vielleicht können Sie C ++ verwenden, um die Untertitel schön zu löschen.
Reference
Recommended Posts