Maison >développement back-end >Tutoriel Python >Comment supprimer les résidus des images à l'aide de Python
L'image1 contient un rectangle avec des résidus
et Image2 représentent le résultat souhaité.
Je souhaite obtenir le même résultat qu'Image2 en utilisant Image1 en Python, mais je ne sais pas si c'est possible ni la méthode nécessaire.
J'ai essayé d'utiliser la transparence de l'image pour la supprimer mais je ne sais pas si cela est possible.
Votre "résiduel"image est moins saturée que l'image "noyau", vous pouvez donc comparer "résiduel" avec "noyau", voir l'article wiki Encyclopedia hsv .
En utilisant imagemagick, je peux convertir votre image en espace colorimétrique HSV, supprimer le canal h
和 v
, puis seuiller le canal de saturation pour trouver les zones les plus saturées, comme ceci :
magick input.png -colorspace hsv -separate -delete 0,2 -threshold 75% rssult.png
En utilisant python et opencv, cela ressemble à ceci :
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)
Si je divise l'image en composants h, s et v et que je trace h (teinte) à gauche, s (saturation) au milieu et v (valeur, c'est-à-dire luminosité) à droite, vous pouvez obtenir le s au centre Image (Saturation), la forme "noyau" a des valeurs de pixels plus élevées, "résiduel" a des valeurs de pixels plus faibles :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!