Sappiamo che OpenCV è ampiamente utilizzato per lavorare con le immagini e ha un`ampia gamma di funzioni per questo. Ma cosa succede se vogliamo elaborare i file di immagine senza utilizzare alcuna libreria esterna come OpenCV. Vediamo come possiamo farlo.
Ridimensionamento dell`immagine (usando l`interpolazione del vicino più vicino):
Interpolazione del vicino più vicino — questo è il modo più semplice per interpolare. Questo metodo determina semplicemente il pixel adiacente "più vicino" e prende un valore per la sua intensità.
Considera una piccola immagine la cui larghezza è w e l`altezza è — h che vogliamo cambiare da larghezza p a larghezza q, assumendo p > m e q > n. Ora abbiamo bisogno di due costanti di ridimensionamento:
scale_x = p / w scale_y = q / h
Ora ripetiamo semplicemente su tutti i pixel nell`immagine di output, facendo riferimento ai pixel originali che abbiamo stanno copiando da. ridimensionando le nostre variabili di controllo con scale_x e scale_y e arrotondando i valori dell`indice in scala risultanti.
Rappresentazione visiva:
L`immagine è 3X3 pixel (9 pixel in totale), ora se vogliamo aumentare la dimensione dell`immagine a 6X6, allora secondo l`algoritmo più vicino 6/3 (cioè 2) pixel dovrebbero avere lo stesso valore RGB del valore pixel all`immagine originale.
Programma di ridimensionamento delle immagini:
Risultato: Scala di grigi dell`immagine:Utilizzando la media value, questo metodo enfatizza l`intensità di un pixel, invece di mostrare di quali valori RGB è composto. Quando calcoliamo il valore RGB medio e gli assegniamo il valore RGB per un pixel, poiché il valore RGB del pixel è lo stesso, non sarà in grado di creare alcun colore, poiché tutti i colori sono generati a causa di un diverso rapporto di RGB valori, poiché in questo caso il rapporto sarebbe 1: 1: 1. Pertanto, l`immagine renderizzata apparirà come un`immagine grigia. Rappresentazione visiva: ![]() Programma di immagini in scala di grigi:
< classe codice = "parola chiave"> for
|
Risultato:
Ritagliare un`immagine:
Il ritaglio sostanzialmente rimuove pixel indesiderati.Questo può essere fatto inserendo il pixel richiesto in un`altra griglia di immagini, la cui dimensione corrisponda a quella richiesta dopo il ritaglio.
Considera un`immagine con una dimensione di 10 × 10 pixel, e se vogliamo solo ritagliare il centro di un`immagine con una dimensione di 4 × 4 pixel, quindi dobbiamo raccogliere i valori dei pixel ​​da (10-4) / 2, a partire da (3, 3) fino a 4 pixel nella direzione x e 4 pixel nella direzione y.
Rappresentazione visiva:
Ritaglia immagine:
# using matplotlib e numpy
import
matplotlib.image as img
import
numpy as npy
# leggi l`immagine nella variabile m
m
=
img.imread (
"taj.png"
)
# definizione della dimensione dell`immagine larghezza (w) altezza (h)
w, h
2
]
# dimensione dell`immagine richiesta dopo il ritaglio
xNew
=
int
4
)
yNew
newImage
=
npy.zeros ([xNew, yNew,
4
])
# larghezza di stampa altezza dell`immagine di origine
print
(w)
print
(h)
for
i
in
for
j
in
range
(
1
, yNew):
# ritaglia da 100 a 100 pixel dell`immagine originale
newImage [i, j]
=
m [
+
j]
# salva l`immagine
img.imsave (
`cropped.png`
, newImage)
Output: