Как извлечь только контуры, похожие на рукописный ввод?

#python #image-processing

#python #обработка изображений

Вопрос:

Я хотел бы извлечь только те контуры, которые принадлежат рукописному вводу на этом изображении:

введите описание изображения здесь

Вот код для извлечения контуров:

 import cv2
import matplotlib.pyplot as plt


img = cv2.imread(PATH TO FRAME)
print("img shape=", img.shape)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.imshow("image", gray)
cv2.waitKey(1)
#### extract all contours
# Find Canny edges 
edged = cv2.Canny(gray, 30, 200) 
cv2.waitKey(0) 
  
# Finding Contours 
# Use a copy of the image e.g. edged.copy() 
# since findContours alters the image 
contours, hierarchy = cv2.findContours(edged,  
    cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) 
  
cv2.imshow('Canny Edges After Contouring', edged) 
cv2.waitKey(0) 
  
print("Number of Contours found = "   str(len(contours))) 
  
# Draw all contours 
# -1 signifies drawing all contours 
cv2.drawContours(img, contours, -1, (0, 255, 0), 3) 
  
cv2.imshow('Contours', img) 
cv2.waitKey(0) 
  

введите описание изображения здесь

Комментарии:

1. Вы могли бы начать с некоторой модели нейронной сети, которая уже распознает рукописный текст. Затем повторно обучите его, чтобы он обнаруживал рукописный текст и игнорировал текст, напечатанный на машинке. Вы могли бы, например, начать с этой модели детектора слов: github.com/githubharald/WordDetectorNN

Ответ №1:

Вы запрашиваете это изображение конкретно или для общего изображения (одним из примеров которого является это) — у вас есть изображение до того, как была написана работа?

Если бы для этого изображения вы могли определить, где может быть рукописный ввод (большой нижний прямоугольник слева), а затем извлечь только те контуры, которые находятся в этой области. Вы могли бы определить этот прямоугольник, обработав изображение до любого ввода и после, или зная, что над областью внизу слева была проведена работа.

Другой вариант: вы могли бы вычесть изображение «до» из «после», чтобы оставить только то, что было добавлено.

Я понимаю, что, хотя они на самом деле не обнаруживают рукописный ввод по контурам, они могут достичь той же цели — чем более медный почерк, тем сложнее его будет обнаружить. Предварительная обработка или получение интересующей области заранее может значительно упростить задачу с контуром.