Heim >Backend-Entwicklung >Python-Tutorial >Python-basiertes Bildreparaturprogramm (Implementierung der Wasserzeichenentfernung)

Python-basiertes Bildreparaturprogramm (Implementierung der Wasserzeichenentfernung)

不言
不言Original
2018-06-04 11:36:153644Durchsuche

Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen zum Python-Bildreparaturprogramm ein, das zum Entfernen von Wasserzeichen in Bildern verwendet werden kann. Es wird hauptsächlich mit dem OpenCV-Framework implementiert wird benötigt Freunde können darauf verweisen, werfen wir einen Blick unten

Bildreparaturprogramm – kann zum Entfernen von Wasserzeichen verwendet werden

Im wirklichen Leben stoßen wir möglicherweise auf einige schöne oder wertvolle Bilder, die durch Rauschen gestört werden, z. B. Falten in alten Fotos, Staub oder Flecken auf der Linse, oder auf einige Bilder, die wir verwenden möchten, aber störende Wasserzeichen aufweisen. Gibt es dann einen Weg? um diese Geräusche zu beseitigen?

Die Antwort lautet: Ja, es ist immer noch das hervorragende OpenCV-Framework, das wir unzählige Male verwendet haben.

OpenCV

Derzeit hat sich OpenCV nach und nach zu einer allgemeinen Grundlagenforschungs- und Produktentwicklungsplattform entwickelt. Der Name OpenCV beinhaltet sowohl die Bedeutung von Open als auch von Computer Vision. Tatsächlich bezieht sich Open auf Open Source (Open Source, also Open-Source-Code) und Computer Vision auf Computer Vision. Die Entwicklung von OpenCV hat einen wichtigen Einfluss auf die Softwareentwicklung. Wenn Sie mehr wissen möchten, können Sie sich diesen Artikel ansehen: http://www.jb51.net/article/127911.htm

Effektvorschau


Prinzip der Bildreparatur

Wie implementiert OpenCV es? Mit anderen Worten: Der Entwickler kalibriert die Eigenschaften des Rauschens und nutzt die Farbeigenschaften rund um das Rauschen, um die Farbe des Bildes abzuleiten, die repariert werden sollte, und erreicht so eine Bildreparatur.

Das Programm implementiert eine Analyse

  • , um die Eigenschaften von Rauschen zu kalibrieren, und verwendet dazu cv2.inRange Binarisieren Sie das Rauschen, um es zu identifizieren, spezifischer Code: cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255])), [240, 240, Farben außer 240]~[255, 255, 255] werden als 0 verarbeitet;

  • Verwenden Sie die Erweiterungsmethode von OpenCV, um den Funktionsbereich zu erweitern und den Bildverarbeitungseffekt zu optimieren; >

  • Verwenden Sie die Inpaint-Methode und verwenden Sie die Rauschmaske als Parameter, um das Bild zu begründen und zu reparieren.

Vollständiger Code

#coding=utf-8
#图片修复

import cv2
import numpy as np

path = "img/inpaint.png"

img = cv2.imread(path)
hight, width, depth = img.shape[0:3]

#图片二值化处理,把[240, 240, 240]~[255, 255, 255]以外的颜色变成0
thresh = cv2.inRange(img, np.array([240, 240, 240]), np.array([255, 255, 255]))

#创建形状和尺寸的结构元素
kernel = np.ones((3, 3), np.uint8)

#扩张待修复区域
hi_mask = cv2.dilate(thresh, kernel, iterations=1)
specular = cv2.inpaint(img, hi_mask, 5, flags=cv2.INPAINT_TELEA)

cv2.namedWindow("Image", 0)
cv2.resizeWindow("Image", int(width / 2), int(hight / 2))
cv2.imshow("Image", img)

cv2.namedWindow("newImage", 0)
cv2.resizeWindow("newImage", int(width / 2), int(hight / 2))
cv2.imshow("newImage", specular)
cv2.waitKey(0)
cv2.destroyAllWindows()

Verwandte Empfehlungen:


Methoden zur Stapelverarbeitung von Datendateien und wissenschaftliche Berechnungen auf Basis von Python

Das obige ist der detaillierte Inhalt vonPython-basiertes Bildreparaturprogramm (Implementierung der Wasserzeichenentfernung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn