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

Awesome!

Completion rate improved to 3.45

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