Nome questo file: ES2_PYTHON_Trova OBJ Con Dimensioni min-MAX E Visualizza
FILE PYTHON: elaboraOBJdidimensioni-min-MAX.py
import cv2
import numpy as np
# Definizione della funzione (qui lasciamo i nomi
delle variabili)
def elabora_oggetti(percorso_immagine,
min_area,
max_area):
img = cv2.imread(percorso_immagine)
if img is None:
print(f"Errore:
Impossibile caricare l'immagine {percorso_immagine}")
return
# Conversione e soglia
gray =
cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray,
127, 255,
cv2.THRESH_BINARY_INV)
# Trova contorni
contours, _ =
cv2.findContours(thresh, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
output = img.copy()
for cnt in contours:
area =
cv2.contourArea(cnt)
#
FILTRO DIMENSIONI
if min_area <= area <= max_area:
cv2.drawContours(output, [cnt], -1,
(0, 255,
0), 2)
x, y, w, h =
cv2.boundingRect(cnt)
cv2.putText(output, str(int(area)), (x, y-5),
cv2.FONT_HERSHEY_SIMPLEX,
0.5, (0,255,0),
1)
cv2.imshow("Risultato
Filtrato", output)
cv2.waitKey(0)
cv2.destroyAllWindows()
# --- ESECUZIONE ---
# Qui inserisci i tuoi valori e il nome del file
file_da_elaborare = 'oggetti.jpg'
MIN = 350 #
Regola questo valore
MAX = 15000 #
Regola questo valore
elabora_oggetti(file_da_elaborare, MIN,
MAX)
FILE IMMAGINE: oggetti.jpg

SPIEGA:
Lo script elaboraOBJdidimensioni-min-MAX.py :
1) –apre il file di immagine, oggetti.jpg che si trova nella stessa cartella!
2) –converte in tonalità di grigi (per procedere meglio!)
3) –converte in un'immagine binaria (solo bianco e nero)
4) Trova contorni
5) Filtra secondo le dimensioni MIN e MAX desiderate/specificate
6) Visualizza risultato. Ogni oggetto risulta contornato di verde e visualizza l’area in pixel
7) Un tasto per chiudere finestra.
L’immagine oggetti.jpg, in questo esempio è un disegno, NON è UNA IMMAGINE REALE.
In prima battuta è consigliabile! Poi, a piacere, potremo analizzare immagini reali provenienti da una telecamera.
FUNZIONAMENTO:
1)--- Mettere lo script in una cartella da qualche parte.
2)--- Entrare nella cartella e digitare CMD alla barra degli indirizzi al fine di aprire un terminale già indirizzato nella cartella.
3)--- Digitare DIR per conoscere se il file è presente nella cartella.(ed avere a video il nome esatto da copiare/incollare per la successiva esecuzione, senza errori!)
4)--- Digitare, da riga di comando:
> PYTHON elaboraOBJdidimensioni-min-MAX.py.
Apparirà qualcosa di simile:

Nello script la variabile MIN=350 mentre MAX=15000.
Notiamo che le due immagini più piccole, non sono risultano cerchiate perché non sono state elaborate.
Evidentemente, l’area delle immagini NON ELABORATE saranno minori di 350 pixel!