Converti l'immagine in scala di grigi in Python
-
Converti un’immagine in scala di grigi in Python usando il metodo
image.convert()
della libreriapillow
-
Converti un’immagine in scala di grigi in Python usando il metodo
color.rgb2gray()
del moduloscikit-image
-
Converti un’immagine in scala di grigi in Python usando il metodo
cv2.imread()
della libreriaOpenCV
-
Converti un’immagine in scala di grigi in Python usando la formula di conversione e la libreria
Matplotlib
Questo tutorial spiegherà vari metodi per convertire un’immagine in scala di grigi in Python. Un’immagine in scala di grigi è un’immagine in cui un singolo pixel rappresenta la quantità di luce o contiene solo informazioni sull’intensità della luce. È un’immagine unidimensionale e ha solo diverse sfumature di grigio.
Poiché le immagini in scala di grigi sono unidimensionali, vengono utilizzate per ridurre la complessità di addestramento dei modelli in vari problemi e in algoritmi come il rilevamento dei bordi Canny.
Questo articolo esaminerà come convertire un’immagine in scala di grigi o leggere un’immagine come scala di grigi in Python utilizzando vari metodi dei moduli di Python.
Converti un’immagine in scala di grigi in Python usando il metodo image.convert()
della libreria pillow
Il metodo image.convert(mode, ..)
prende un’immagine come input e la converte nel tipo di immagine desiderato specificato nell’argomento mode
. La modalità include immagini in bianco e nero pixel a 1 e 8 bit, immagini RGB
, immagini HSV
, immagini BGR
e immagini LAB
, ecc.
Poiché vogliamo convertire la nostra immagine in scala di grigi, possiamo passare 1
come argomento di modalità per la modalità in bianco e nero a 1 bit, L
per l’immagine in bianco e nero a 8 bit e LA
per la modalità alfa. Il codice di esempio sotto mostra come utilizzare il metodo image.convert()
della libreria pillow
per convertire un’immagine in scala di grigi in Python:
from PIL import Image
img = Image.open("test.jpg")
imgGray = img.convert("L")
imgGray.save("test_gray.jpg")
Immagine originale:
Immagine in scala di grigi convinta:
Converti un’immagine in scala di grigi in Python usando il metodo color.rgb2gray()
del modulo scikit-image
Il color.rgb2gray()
prende un’immagine in formato RGB come input e restituisce una copia in scala di grigi dell’immagine in ingresso. L’esempio di codice seguente mostra come utilizzare il metodo color.rgb2gray()
del modulo scikit-image
per ottenere un’immagine in scala di grigi in Python.
from skimage import color
from skimage import io
img = io.imread("test.jpg")
imgGray = color.rgb2gray(img)
Converti un’immagine in scala di grigi in Python usando il metodo cv2.imread()
della libreria OpenCV
Un altro metodo per ottenere un’immagine in scala di grigi è leggere direttamente l’immagine in modalità scala di grigi, possiamo leggere un’immagine in scala di grigi usando il metodo cv2.imread(path, flag)
della libreria OpenCV
.
Supponiamo che il valore flag
del metodo cv2.imread()
sia uguale a 1. In tal caso, leggerà l’immagine escludendo il canale alfa, se 0
leggerà l’immagine come scala di grigi, e se uguale al metodo -1
leggerà l’immagine comprese le informazioni sul canale alfa.
Pertanto, possiamo leggere un’immagine come scala di grigi da un dato percorso usando il metodo imread()
passando il valore dell’argomento flag
come 1
.
Il codice di esempio seguente mostra come utilizzare il metodo cv2.imread()
per leggere un’immagine in scala di grigi in Python:
import cv2
imgGray = cv2.imread("test.jpg", 0)
Converti un’immagine in scala di grigi in Python usando la formula di conversione e la libreria Matplotlib
Possiamo anche convertire un’immagine in scala di grigi usando la formula standard di conversione da RGB a scala di grigi che è imgGray = 0.2989 * R + 0.5870 * G + 0.1140 * B
.
Possiamo implementare questo metodo usando la libreria Matplotlib
in Python, prima dobbiamo leggere l’immagine usando il metodo mpimg.imread()
e poi ottenere gli array delle dimensioni rossa, blu e verde dell’immagine RGB dopo aver ottenuto gli array possiamo applicare la formula su di essi per ottenere l’immagine in scala di grigi. Abbiamo bisogno di moltiplicare gli array complete con i valori dati nella formula per ottenere l’immagine in scala di grigi.
L’esempio di codice seguente mostra come implementare la formula di conversione da RGB a scala di grigi in Python utilizzando la libreria Matplotlib
.
from matplotlib import pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread("test.jpg")
R, G, B = img[:, :, 0], img[:, :, 1], img[:, :, 2]
imgGray = 0.2989 * R + 0.5870 * G + 0.1140 * B
plt.imshow(imgGray, cmap="gray")
plt.show()