Heim >Backend-Entwicklung >Python-Tutorial >So entfernen Sie Reste aus Bildern mit Python

So entfernen Sie Reste aus Bildern mit Python

王林
王林nach vorne
2024-02-06 08:30:12911Durchsuche

如何使用 Python 去除图像中的残差

Frageninhalt

Bild1 enthält ein Rechteck mit Residuen

und Bild2 stellen das gewünschte Ergebnis dar.

Ich möchte mit Image1 in Python das gleiche Ergebnis wie Image2 erzielen, bin mir aber nicht sicher, ob dies möglich ist und welche Methode erforderlich ist.

Ich habe versucht, die Transparenz des Bildes zu nutzen, um es zu entfernen, bin mir aber nicht sicher, ob das möglich ist. 🎞 .


Mit

imagemagick

kann ich Ihr Bild in den HSV-Farbraum konvertieren, den
-Kanal verwerfen und dann den Sättigungskanal als Schwellenwert festlegen, um die am stärksten gesättigten Bereiche zu finden, wie folgt:

magick input.png -colorspace hsv -separate -delete 0,2 -threshold 75% rssult.png
Mit Python und OpenCV sieht es ungefähr so ​​aus:
import cv2 as cv
import numpy as np

# Load image
im = cv.imread(YOURIMAGE)

# Convert to HSV colourspace and split channels
hsv = cv.cvtColor(im, cv.COLOR_BGR2HSV)
H, S, V = cv.split(hsv)

# Make mask of areas of high saturation 
coreMask = S > 200

# Scale up from range 0..1 to range 0..255 and save as PNG
cv.imwrite('result.png', coreMask * 255)
Wenn ich das Bild in h-, s- und v-Komponenten aufteile und links h (Farbton), in der Mitte s (Sättigung) und rechts v (Wert, also Helligkeit) eintrage, erhält man das s in der Mitte (Sättigungs-)Bild, "Kern" Form hat höhere Pixelwerte, "Rest" hat niedrigere Pixelwerte:

Das obige ist der detaillierte Inhalt vonSo entfernen Sie Reste aus Bildern mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen