disturbs package

Submodules

disturbs.colors module

disturbs.focus module

Modulo che applica un disturbo di sfocatura dovuta al movimento o alla messa a fuoco, ad un’immagine codificata in RGB o scala di grigi sfruttando openCV2.

disturbs.focus.apply_focus_blur(image: Mat | ndarray, blur_kernel: tuple[int, int] = (31, 31), sigma: float = 0.0) Mat | ndarray[sorgente]

Questo metodo che simula un mancato focus dello scatto.

Parametri:
  • image – l’immagine a cui applicare il rumore sotto forma di matrice.

  • blur_kernel – tupla che contiene due numeri dispari, controlla la grandezza del filtro gaussiano.

  • sigma – numero che definisce la forza del defocus, deve essere maggiore di 0.

Solleva:

ValueError – se il blur kernel non è bidimensionale o non contiene valori dispari. L’errore può essere causato anche da una sigma negativa. Il messaggio a schermo chiarirà il motivo.

Ritorna:

una matrice numpy che rappresenta l’immagine a cui è stato aggiunto il focus blur.

disturbs.focus.apply_motion_blur(image: Mat | ndarray, ksize: int = 15, angle: float = 45.0) Mat | ndarray[sorgente]

Questo metodo simula un defocus dovuto al movimento.

Parametri:
  • image – l’immagine a cui applicare il rumore sotto forma di matrice.

  • ksize – controlla la quantità di movimento, deve essere dispari e maggiore di 0.

  • angle – controlla la direzione del movimento.

Solleva:

ValueError – se la dimensione del kernel non è maggiore di 0 e non è dispari, Il messaggio a schermo chiarirà il motivo.

Ritorna:

l’immagine a cui è stato applicato il motion blur.

disturbs.geometric module

disturbs.geometric.rotate_image_and_label(image: Mat | ndarray, labels: list[str] | str, angle: float)[sorgente]

Questo metodo permette di ruotare l’immagine e la rispettiva label. La label deve essere nei seguenti formati (class x_1 y_1 x_2 y_2 … x_n y_n) oppure (class centro_x centro_y height width). Eccetto class ciascun valore presente nella label deve essere normalizzato nell’intervallo [0, 1]. In base al formato della label verrà chiamato il metodo corretto.

Parametri:
  • image – l’immagine da ruotare.

  • labels – la/le label da ruotare.

  • angle – l’angolo di rotazione dell’immagine.

Ritorna:

l’immagine e la label ruotate.

disturbs.ligthness module

disturbs.ligthness.contrast_correction(img: Mat | ndarray, out_min: int = 100, out_max: int = 150) Mat | ndarray[sorgente]

Questo metodo permette di comprimere i valori dell’immagine in un intervallo definito applicando la correzione del contrasto.

Parametri:
  • img – l’immagine a cui viene applicata la correzione del contrasto.

  • out_min – intensità minima presente nell’immagine di output.

  • out_max – intensità massima presente nell’immagine di output.

Solleva:

ValueError – se image non ha shape bidimensionale o tridimensionale.

Ritorna:

una matrice numpy che rappresenta l’immagine a cui è stato aggiunta la correzione del contrasto.

disturbs.noise module

Modulo per applicare rumore Gaussiano o Salt & Pepper ad immagini codificate in RGB o scala di grigi utilizzando OpenCV2.

disturbs.noise.add_gaussian_noise(image: Mat | ndarray, mean: int | float = 0, std_dev: int | float = 25) Mat | ndarray[sorgente]

Questo metodo permette di aggiunge rumore Gaussiano ad un’immagine codificata in RGB o scala di grigi.

Parametri:
  • image – l’immagine a cui applicare il rumore.

  • mean – la media della distribuzione normale.

  • std_dev – la deviazione standard della distribuzione normale.

Solleva:

ValueError – se la deviazione standard è minore o uguale a zero.

Ritorna:

l’immagine con il rumore gaussiano.

disturbs.noise.add_salt_and_pepper_noise(image: Mat | ndarray, amount: float = 0.4) Mat | ndarray[sorgente]

Questo metodo permette di aggiungere il rumore Salt & Pepper ad un’immagine codificata in RGB o scala di grigi.

Parametri:
  • image – l’immagine a cui applicare il rumore, sotto forma di matrice.

  • amount – la percentuale di pixel da alterare con rumore Salt & Pepper. Il valore atteso è una percentuale (es. 0.4 = 0.004%).

Ritorna:

l’immagine con il rumore Salt & Pepper aggiunto.

Module contents