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
Can you explain what each OpenCV function does in these examples?
How do I choose the right parameters for resizing or rotating an image?
Can you show more examples of image transformations?
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