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!