14.2 imageop -- Manipolare dati di immagini grezzi

Il modulo imageop contiene alcune utili operazioni sulle immagini. Questo opera su immagini costituite da 8 o 32 pixels conservate in stringhe Python. Questo è il solito formato che viene usato da gl.lrectwrite() e dal modulo imgfile.

Il modulo definisce le seguenti variabili e funzioni:

exception error
Questa eccezione viene rilasciata per tutti gli errori, come un numero sconosciuto di bit per pixel, etc. etc..

crop( image, psize, width, height, x0, y0, x1, y1)
Restituisce la parte selezionata dell'immagine image, che dovrebbe avere le dimensioni width per height (NdT: larghezza per altezza) ed essere formata dai pixel dei byte di psize. x0, y0, x1 e y1 sono come i parametri di gl.lrectread(), per esempio, la cornice viene inclusa nella nuova immagine. La nuova cornice ha la necessità di essere inserita dentro l'immagine. I pixel che rimangono fuori dalla vecchia immagine avranno i loro valori impostati a zero. Se x0 è più grande di x1, la nuova immagine è speculare. Lo stesso vale per le coordinate y.

scale( image, psize, width, height, newwidth, newheight)
Restituisce l'immagine image scalata per la dimensione newwidth per newheight. Non viene fatta nessuna interpolazione, la scala è fatta per una semplice duplicazione dei pixel o loro rimozione. Di conseguenza, le immagini generate da computer o mosse, non saranno belle dopo essere state scalate.

tovideo( image, psize, width, height)
Esegue un filtro verticale passa-basso sopra una immagine. Si comporta così per computare ogni pixel di destinazione come la media delle due sorgenti verticali di pixel. Il principale uso di questa routine è anticipare l'eccessivo sfarfallio se l'immagine viene mostrata su un video che usa l'interlacciamento, da qui il nome.

grey2mono( image, width, height, threshold)
Converte un'immagine con profondità in scala di grigi a 8-bit in un'immagine con profondità a 1-bit per la soglia di tutti i pixel. L'immagine risultante è molto compressa ed è probabilmente usabile solo come argomento per mono2grey().

dither2mono( image, width, height)
Converte un'immagine a 8-bit in scala di grigi in una immagine monocromatica ad 1-bit usando l'algoritmo per il dithering (NdT: amalgama di colori, sintesi di punti in colori diversi per la realizzazione di un'area a colore intermedio).

mono2grey( image, width, height, p0, p1)
Converte un'immagine monocromatica a 1-bit in una immagine a 8-bit in scala di grigi. Tutti i pixel che hanno valore zero in input prendono il valore p0 in output e tutti i pixel che hanno valore uno in input prendono il valore p1 in output. Per convertire un'immagine in bianco e nero monocromatica in un scala di grigi passare rispettivamente i valori 0 e 255.

grey2grey4( image, width, height)
Converte un'immagine a 8-bit in scala di grigi in un'immagine a 4-bit in scala di grigi senza il dithering.

grey2grey2( image, width, height)
Converte una immagine a 8-bit in scala di grigi in un'immagine a 2-bit in scala di grigi senza il dithering.

dither2grey2( image, width, height)
Converte un'immagine a 8-bit in scala di grigi in un'immagine a 2-bit in scala di grigi con il dithering. Come per dither2mono(), l'algoritmo di dithering è molto semplice.

grey42grey( image, width, height)
Converte un'immagine a 4-bit in scala di grigi in un'immagine a 8-bit in scala di grigi.

grey22grey( image, width, height)
Converte un'immagine a 2-bit in scala di grigi in un'immagine a 8-bit in scala di grigi.

backward_compatible
Se viene impostata a 0, le funzioni in questo modulo diventano non compatibili, su sistemi little-endian, per la rappresentazione di pixel multi-byte. La SGI su cui questo modulo è stato originariamente scritto era un sistema big-endian, così impostando questa variabile non vi saranno effetti. Comunque, in origine il codice fu scritto per girare su entrambi i sistemi, così furono fatte considerazioni circa il byte order su ciò che sia universale o meno. Impostando questa variabile a 0 si avrà un byte order contrario al sistema little-endian, in questo modo si otterrà un funzionamento come quello del sistema big-endian. +
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.