#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:
Вы запрашиваете это изображение конкретно или для общего изображения (одним из примеров которого является это) — у вас есть изображение до того, как была написана работа?
Если бы для этого изображения вы могли определить, где может быть рукописный ввод (большой нижний прямоугольник слева), а затем извлечь только те контуры, которые находятся в этой области. Вы могли бы определить этот прямоугольник, обработав изображение до любого ввода и после, или зная, что над областью внизу слева была проведена работа.
Другой вариант: вы могли бы вычесть изображение «до» из «после», чтобы оставить только то, что было добавлено.
Я понимаю, что, хотя они на самом деле не обнаруживают рукописный ввод по контурам, они могут достичь той же цели — чем более медный почерк, тем сложнее его будет обнаружить. Предварительная обработка или получение интересующей области заранее может значительно упростить задачу с контуром.