How to group together all strokes of a same kind on an image?
Question preamble
I want to group together all strokes which are below a spatial threshold. I want to do this in order to use entropy to distinguish shape versus text in hand-drawn diagrams from the article of the same name. For instance with the following image :

Here the in hand-drawn diagrams are showed with the red arrows which are not part of the document. The authors of the given article also used
The whole point of the project is to classify area of an image by entropy with python in order to be able to select only paragraphs that have these drawn [.
My attempt
Inspired by this post I thought about :
- doing a Canny edge detection selecting the pixels close to black or grey
- Focus on a region of interest that minimizes false positives. This region of interest is basically the letters or shape without any of the black tape that covers one of their sides.
As you can imagine the arrays, which are of no interest, will create some issues.
- Find all distinct contours which are close the one from the others.
Unfortunately I am already stuck at the first step : the Canny edge detection doesn't seem to be useful for text :

Here is the related code :
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()
So I tried to select only grey pixels but I had a ValueError: conversion from RGB to rgb not supported
python-3.x image-processing
add a comment |
Question preamble
I want to group together all strokes which are below a spatial threshold. I want to do this in order to use entropy to distinguish shape versus text in hand-drawn diagrams from the article of the same name. For instance with the following image :

Here the in hand-drawn diagrams are showed with the red arrows which are not part of the document. The authors of the given article also used
The whole point of the project is to classify area of an image by entropy with python in order to be able to select only paragraphs that have these drawn [.
My attempt
Inspired by this post I thought about :
- doing a Canny edge detection selecting the pixels close to black or grey
- Focus on a region of interest that minimizes false positives. This region of interest is basically the letters or shape without any of the black tape that covers one of their sides.
As you can imagine the arrays, which are of no interest, will create some issues.
- Find all distinct contours which are close the one from the others.
Unfortunately I am already stuck at the first step : the Canny edge detection doesn't seem to be useful for text :

Here is the related code :
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()
So I tried to select only grey pixels but I had a ValueError: conversion from RGB to rgb not supported
python-3.x image-processing
add a comment |
Question preamble
I want to group together all strokes which are below a spatial threshold. I want to do this in order to use entropy to distinguish shape versus text in hand-drawn diagrams from the article of the same name. For instance with the following image :

Here the in hand-drawn diagrams are showed with the red arrows which are not part of the document. The authors of the given article also used
The whole point of the project is to classify area of an image by entropy with python in order to be able to select only paragraphs that have these drawn [.
My attempt
Inspired by this post I thought about :
- doing a Canny edge detection selecting the pixels close to black or grey
- Focus on a region of interest that minimizes false positives. This region of interest is basically the letters or shape without any of the black tape that covers one of their sides.
As you can imagine the arrays, which are of no interest, will create some issues.
- Find all distinct contours which are close the one from the others.
Unfortunately I am already stuck at the first step : the Canny edge detection doesn't seem to be useful for text :

Here is the related code :
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()
So I tried to select only grey pixels but I had a ValueError: conversion from RGB to rgb not supported
python-3.x image-processing
Question preamble
I want to group together all strokes which are below a spatial threshold. I want to do this in order to use entropy to distinguish shape versus text in hand-drawn diagrams from the article of the same name. For instance with the following image :

Here the in hand-drawn diagrams are showed with the red arrows which are not part of the document. The authors of the given article also used
The whole point of the project is to classify area of an image by entropy with python in order to be able to select only paragraphs that have these drawn [.
My attempt
Inspired by this post I thought about :
- doing a Canny edge detection selecting the pixels close to black or grey
- Focus on a region of interest that minimizes false positives. This region of interest is basically the letters or shape without any of the black tape that covers one of their sides.
As you can imagine the arrays, which are of no interest, will create some issues.
- Find all distinct contours which are close the one from the others.
Unfortunately I am already stuck at the first step : the Canny edge detection doesn't seem to be useful for text :

Here is the related code :
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()
So I tried to select only grey pixels but I had a ValueError: conversion from RGB to rgb not supported
python-3.x image-processing
python-3.x image-processing
edited Nov 17 '18 at 17:56
ThePassenger
asked Nov 11 '18 at 17:41
ThePassengerThePassenger
221320
221320
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53251442%2fhow-to-group-together-all-strokes-of-a-same-kind-on-an-image%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53251442%2fhow-to-group-together-all-strokes-of-a-same-kind-on-an-image%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown