Come migliorare l'individuazione di una curva di Hough-Lines probabilistica?

1

Sto provando a rilevare una lancetta dell'orologio in un video di un display analogico e ad estrarre il valore a cui punta. Sto usando Python con OpenCV per questo.

Quello che essenzialmente faccio è:

  1. Sto usando un Gaussian Blur per ridurre il rumore nell'immagine attuale.
  2. Uso Canny Edge Detection per filtrare i bordi
  3. Applico la trasformazione probalistica Hough Line

Il codice per questo:

def detect_clock_hand(img, center):
    # Convert to gray
    gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

    # Apply gaussian blur
    blur = cv2.GaussianBlur(gray, (11, 11), 0, 0)

    # Apply sobel edge detection
    edges = cv2.Canny(blur, 30, 40)

    # Apply HoughTransform
    lines = cv2.HoughLinesP(edges, 10, np.pi / 180, 5, 15, 50)

    #Filter lines in a given radius
    filtered_edges = util.filter_edges(lines, center)

Ho giocato molto con i parametri per migliorare i risultati. Lo stato corrente assomiglia a questo:

  1. Canny

  2. Hough

Comepuoivedere,ilrisultatosegnasolounapartedellalancetta.Equellapartenonèuneventounaparte"buona" da quello che posso dire dal Canny Edge Detection. Mi chiedo se uso l'Hough Transform errato o che Edge Detection in realtà non sia buono come credo. Dal momento che sono nuovo di Image Processing, sarei grato per qualsiasi consiglio.

    
posta Yggdrasill 26.06.2017 - 12:50
fonte

0 risposte

Leggi altre domande sui tag