Преамбула вопроса
Я хочу сгруппировать все штрихи, которые находятся ниже пространственного порога. Я хочу сделать это, чтобы использовать энтропию, чтобы отличать фигуру от текста на нарисованных от руки диаграммах от одноименной статьи 1004 *. Например, со следующим изображением:
Здесь нарисованные от руки диаграммы показаны с красными стрелками, которые не являются частью документа. Авторы данной статьи также использовали
Весь смысл проекта состоит в том, чтобы классифицировать область изображения по энтропии с помощью python, чтобы можно было выбирать только абзацы, на которых они нарисованы [
.
Моя попытка
Вдохновленный этим постом Я думал о:
- делает обнаружение края Канни, выбирая пиксели, близкие к черному или серому
- Сосредоточьтесь на интересующей области, которая сводит к минимуму ложные срабатывания. Эта область интересов в основном представляет собой буквы или фигуры без какой-либо черной ленты, которая покрывает одну из их сторон.
Как вы можете себе представить, массивы, которые не представляют интереса, создадут некоторые проблемы.
- Найдите все отличительные контуры, которые совпадают с другими.
К сожалению, я уже застрял на первом этапе: обнаружение Canny Edge не пригодится для текста:
Вот соответствующий код:
img = cv2.imread('out4.jpg',0)
edges = cv2.Canny(img,100,200,True)
plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()
Поэтому я попытался выбрать только серые пиксели, но у меня было ValueError: conversion from RGB to rgb not supported