Wie extrahiere ich mit OpenCV Konturen für jeden gestapelten Beutel (Webschlinge) in einem Tiefenbild?Python

Python-Programme
Anonymous
 Wie extrahiere ich mit OpenCV Konturen für jeden gestapelten Beutel (Webschlinge) in einem Tiefenbild?

Post by Anonymous »

Ich arbeite an einer Bildverarbeitungsaufgabe in Python/OpenCV und weiß nicht, wie ich jede „Webschlinge“ (gestapelte Beutelgruppe) als einzelne Kontur segmentieren soll.
Was ich erreichen möchte:
  • Erkennen Sie jede Webschlinge und erhalten Sie eine Kontur pro Webschlinge, damit ich zählen kann Sie.
  • Ich brauche keine pixelgenaue Segmentierung, aber ich brauche einigermaßen saubere Grenzen zwischen den Zeilen.
Ich habe ein Graustufen-Tiefenbild, das vom Depth-Anything-Modell generiert wurde. Das Bild sieht so aus
Image

Code: Select all

import cv2
import numpy as np

img = cv2.imread("output.png", cv2.IMREAD_GRAYSCALE)

# Equalize + CLAHE to enhance contrast
eq = cv2.equalizeHist(img)

clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
clahe_img = clahe.apply(eq)

# Canny + dilate
edges = cv2.Canny(clahe_img, 50, 150)
kernel = np.ones((3,3), np.uint8)
Das Kantenbild sieht derzeit so aus:
Image

Ich bekomme also viele Konturen, aber sie sind sehr gezackt und gebrochen, und sie bilden keine saubere Kontur pro Webschlinge. Aus diesem Grund ist es schwierig zu zählen, wie viele Hebebänder vorhanden sind, oder die Neigung jeder Schicht zu messen.
Stattdessen möchte ich eher eine glatte, geschlossene Kontur pro Beutelreihe (oder pro Beutelblock), damit ich sie einfach zählen kann.
Jeder Hinweis oder Codebeispiele, wie ich sauberere Konturen bekomme, die ich zuverlässig zählen kann, wäre sehr hilfreich. Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post