Wie erkenne ich benutzerdefinierte Pfeilformen in OpenCV?Python

Python-Programme
Anonymous
 Wie erkenne ich benutzerdefinierte Pfeilformen in OpenCV?

Post by Anonymous »

Das Problem
Wie im Bild gezeigt, versuche ich mithilfe von OpenCV die Straßenmarkierungspfeile in Bildern zu erkennen. Die Pfeile sind immer von gleicher Größe und Form, können jedoch in verschiedenen Orientierungen erscheinen. /> [*] Gerade oder linke Kurve


Was habe ich versucht. cv.MatchTemplate Verwenden Sie TM_CCORR_NORMED

Code: Select all

cv.matchTemplate
Verwenden von tm_ccorr_normed . Dies funktionierte nur, wenn sowohl mein Bild als auch meine Template die gleiche Orientierung ohne Vorverarbeitung sind. Nachweis gedrehter Pfeile. Arbeit. import cv2
import numpy as np

# Load Image
img = cv2.imread('path_to_image')

# Preprocessing
processed = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
processed = cv2.bilateralFilter(processed, 11, 75, 75)
processed = cv2.Canny(processed, 50, 150)
kernel = np.ones((3, 3), np.uint8)
processed = cv2.morphologyEx(processed, cv2.MORPH_CLOSE, kernel, iterations=1)

# Hough Line Transform
lines = cv2.HoughLinesP(processed, 1, np.pi/180, threshold=50, minLineLength=30, maxLineGap=10)
if lines is not None:
for line in lines:
x1, y1, x2, y2 = line[0]
cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2)

# Contour Detection
contours, _ = cv2.findContours(processed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
approx = cv2.approxPolyDP(cnt, 0.02 * cv2.arcLength(cnt, True), True)
if len(approx) > 5: # Rough filter for arrow shapes
cv2.drawContours(img, [approx], 0, (255, 0, 0), 2)

# Display Results
cv2.imshow('Detected Arrows', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
< /code>
Zusätzlicher Kontext < /strong> < /p>
  • Das bereitgestellte Bild ist eine vergrößerte Version eines viel größeren 8.000 × 8.000-Pixel-Bildes. Das vollständige Bild enthält viel mehr Lärm, einschließlich Straßenmarkierungen und Kreuzungen, aber die Straßenmarkierungen selbst scheinen sich von den anderen zu unterscheiden. Die Pfeile selbst sind im vollständigen Bild viel kleiner (ungefähr 7 kb, wenn Sie einen einzelnen Pfeil herausschneiden). Haben Sie kommentierte Daten zum Arbeiten. Das Erstellen eines Trainingsdatensatzes ist aus zeitlichen Einschränkungen nicht möglich.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post