Ermitteln von Vorsprüngen und Vertiefungen auf einer Braille-Seite mithilfe der BildverarbeitungPython

Python-Programme
Guest
 Ermitteln von Vorsprüngen und Vertiefungen auf einer Braille-Seite mithilfe der Bildverarbeitung

Post by Guest »

Wie kann ich das Problem der Erkennung von Vorsprüngen und Vertiefungen auf einer Braille-Seite angehen? Das ist ziemlich schwierig, denn wenn sich die Lichtquelle auf der rechten Seite der Seite befindet, erzeugen die Vorsprünge Schatten auf der linken Seite nach rechts und umgekehrt. Ebenso kann die Lichtquelle überall auf der Seite angebracht werden. Ich habe verschiedene Möglichkeiten ausprobiert, aber es scheint nicht zu funktionieren (siehe dieses Bild).
Ich habe versucht, die nach links gerichteten Konturen zu finden und sie zu entfernen. Auch hier funktioniert es nur, wenn das Licht von rechts projiziert wird.

Code: Select all

def remove_left_facing_dots(image, intensity_ratio_threshold=1.2):

blurred = cv2.GaussianBlur(image, (3, 3), 0)

edges = cv2.Canny(blurred, 50, 150)

contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

filtered_contours = []
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)

roi = image[y:y+h, x:x+w]
left_half = roi[:, :w//2].sum()
right_half = roi[:, w//2:].sum()

if right_half > left_half * intensity_ratio_threshold:
filtered_contours.append(contour)

mask = np.zeros_like(image)
cv2.drawContours(mask, filtered_contours, -1, 255, thickness=cv2.FILLED)

cleaned_image = cv2.bitwise_and(image, mask)

return cleaned_image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post