Как сгруппировать все штрихи одного вида на изображении? - PullRequest
0 голосов
/ 11 ноября 2018

Преамбула вопроса

Я хочу сгруппировать все штрихи, которые находятся ниже пространственного порога. Я хочу сделать это, чтобы использовать энтропию, чтобы отличать фигуру от текста на нарисованных от руки диаграммах от одноименной статьи 1004 *. Например, со следующим изображением:

enter image description here

Здесь нарисованные от руки диаграммы показаны с красными стрелками, которые не являются частью документа. Авторы данной статьи также использовали

Весь смысл проекта состоит в том, чтобы классифицировать область изображения по энтропии с помощью python, чтобы можно было выбирать только абзацы, на которых они нарисованы [.

Моя попытка

Вдохновленный этим постом Я думал о:

  1. делает обнаружение края Канни, выбирая пиксели, близкие к черному или серому
  2. Сосредоточьтесь на интересующей области, которая сводит к минимуму ложные срабатывания. Эта область интересов в основном представляет собой буквы или фигуры без какой-либо черной ленты, которая покрывает одну из их сторон.

Как вы можете себе представить, массивы, которые не представляют интереса, создадут некоторые проблемы.

  1. Найдите все отличительные контуры, которые совпадают с другими.

К сожалению, я уже застрял на первом этапе: обнаружение Canny Edge не пригодится для текста:

enter image description here

Вот соответствующий код:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...