Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Trasformazioni di Base | Elaborazione delle Immagini con OpenCV
Fondamenti di Computer Vision

bookTrasformazioni di Base

Note
Definizione

OpenCV (Open Source Computer Vision Library) è una potente libreria open-source progettata per la visione artificiale in tempo reale e l'elaborazione delle immagini. Fornisce strumenti per manipolare immagini, rilevare oggetti e persino lavorare con modelli di deep learning.

Lettura e visualizzazione di un'immagine

Prima di eseguire trasformazioni, caricare e visualizzare un'immagine utilizzando OpenCV. La foto è già stata importata. Tuttavia, sul computer locale, per una semplice lettura e visualizzazione della foto, utilizzare:

import cv2

image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)

Ridimensionamento di un'immagine

Il ridimensionamento è utile per scalare le immagini verso l'alto o verso il basso mantenendo il rapporto di aspetto (parametri fx e fy), dove fx e fy definiscono il fattore di scala per larghezza e altezza.

resized_image = cv2.resize(image, fx=0.7, fy=0.5)

È possibile specificare anche dimensioni esatte in pixel (parametro dsize), dove dsize rappresenta la forma di output (new_y, new_x).

resized = cv2.resize(image, (100, 100))

Rotazione di un'immagine

Per ruotare un'immagine di un angolo specifico, si utilizzano cv2.getRotationMatrix2D() e cv2.warpAffine().

  • cv2.getRotationMatrix2D(center, angle, scale) definisce la matrice di rotazione;
  • cv2.warpAffine(image, matrix, output_size) applica la trasformazione.
height, width = image.shape[:2]
centre = (width // 2, height // 2)

rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))

Ritaglio di un'immagine

Il ritaglio consente di estrarre una regione specifica da un'immagine. Si effettua tramite slicing di NumPy. La sintassi image[start_y:end_y, start_x:end_x] seleziona una regione di interesse.

cropped = image[450:500, 250:350]
Compito

Swipe to start coding

Ti viene fornita un'immagine image:

  • Ridimensionare l'immagine a una dimensione (100, 100) e salvarla nella variabile resized;
  • Estrarre height e width dall'immagine;
  • Calcolare il center di height e width;
  • Creare la matrice di rotazione e salvarla nella variabile rotation_matrix;
  • Ruotare l'immagine di 90 gradi in senso orario e salvarla nella variabile rotated;
  • Ritagliare la regione X: 250-600 e Y: 100-450 dell'immagine e salvarla nella variabile cropped.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 1
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

close

bookTrasformazioni di Base

Scorri per mostrare il menu

Note
Definizione

OpenCV (Open Source Computer Vision Library) è una potente libreria open-source progettata per la visione artificiale in tempo reale e l'elaborazione delle immagini. Fornisce strumenti per manipolare immagini, rilevare oggetti e persino lavorare con modelli di deep learning.

Lettura e visualizzazione di un'immagine

Prima di eseguire trasformazioni, caricare e visualizzare un'immagine utilizzando OpenCV. La foto è già stata importata. Tuttavia, sul computer locale, per una semplice lettura e visualizzazione della foto, utilizzare:

import cv2

image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)

Ridimensionamento di un'immagine

Il ridimensionamento è utile per scalare le immagini verso l'alto o verso il basso mantenendo il rapporto di aspetto (parametri fx e fy), dove fx e fy definiscono il fattore di scala per larghezza e altezza.

resized_image = cv2.resize(image, fx=0.7, fy=0.5)

È possibile specificare anche dimensioni esatte in pixel (parametro dsize), dove dsize rappresenta la forma di output (new_y, new_x).

resized = cv2.resize(image, (100, 100))

Rotazione di un'immagine

Per ruotare un'immagine di un angolo specifico, si utilizzano cv2.getRotationMatrix2D() e cv2.warpAffine().

  • cv2.getRotationMatrix2D(center, angle, scale) definisce la matrice di rotazione;
  • cv2.warpAffine(image, matrix, output_size) applica la trasformazione.
height, width = image.shape[:2]
centre = (width // 2, height // 2)

rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))

Ritaglio di un'immagine

Il ritaglio consente di estrarre una regione specifica da un'immagine. Si effettua tramite slicing di NumPy. La sintassi image[start_y:end_y, start_x:end_x] seleziona una regione di interesse.

cropped = image[450:500, 250:350]
Compito

Swipe to start coding

Ti viene fornita un'immagine image:

  • Ridimensionare l'immagine a una dimensione (100, 100) e salvarla nella variabile resized;
  • Estrarre height e width dall'immagine;
  • Calcolare il center di height e width;
  • Creare la matrice di rotazione e salvarla nella variabile rotation_matrix;
  • Ruotare l'immagine di 90 gradi in senso orario e salvarla nella variabile rotated;
  • Ritagliare la regione X: 250-600 e Y: 100-450 dell'immagine e salvarla nella variabile cropped.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 1
single

single

some-alt