Trasformazioni di Base
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]
Swipe to start coding
Ti viene fornita un'immagine image:
- Ridimensionare l'immagine a una dimensione
(100, 100)e salvarla nella variabileresized; - Estrarre
heightewidthdall'immagine; - Calcolare il
centerdiheightewidth; - 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
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 3.45
Trasformazioni di Base
Scorri per mostrare il menu
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]
Swipe to start coding
Ti viene fornita un'immagine image:
- Ridimensionare l'immagine a una dimensione
(100, 100)e salvarla nella variabileresized; - Estrarre
heightewidthdall'immagine; - Calcolare il
centerdiheightewidth; - 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
Grazie per i tuoi commenti!
single