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
height
ewidth
dall'immagine; - Calcolare il
center
diheight
ewidth
; - 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
height
ewidth
dall'immagine; - Calcolare il
center
diheight
ewidth
; - 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