2017-10-21 29 views
1

Morphologie bien essayée dans imagemagick mais malheureusement la sortie affecte également le texte, ce qui le rend insatisfaisant pour ocr. Donc y a-t-il un moyen plus rapide de supprimer les lignes de l'image sans affecter le texte pour ocr?suppression des lignes horizontales de l'image numérisée

image d'entrée:

Code ImageMagick:

magick 1sa.jpg -morphology close:1 "1x4: 0,1,1,0" result.png    

image de sortie

Edit: Merci à tous Thos qui ont répondu et je l'ai fait finalement fonctionne avec le code suivant :

magick E:\1sa.jpg (+clone -threshold 50% -negate -statistic median 219x1) -compose lighten -composite E:\z1.jpg 
+1

S'il vous plaît lire [demander]. Afficher les images, le code, les résultats réels, les résultats attendus – Miki

+0

_ "Y at-il un moyen plus rapide ..." _ Je serais plus préoccupé par un _working_ way ... Clairement les opérations de morph ne sont pas adaptées à ce cas – Miki

+0

ordinateur, mais cela aide-t-il? https://stackoverflow.com/a/41633319/2836621 –

Répondre

1

Votre commande ImageMagick est erronée et ne devrait même pas fonctionner. Vous devez faire du noyau une ligne horizontale non verticale et vous avez besoin d'une ligne plus longue pour le noyau. Effectuez les opérations suivantes:

magick 1sa.jpg -morphology bottomhat "20x1:0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0" -negate result.png 

enter image description here

ajuster la longueur du noyau au besoin pour optimiser votre résultat.

+0

merci cela fonctionne :) mais est-il un moyen de remplir les 1 pixels blancs près du texte qui sont dues à l'enlèvement des lignes afin d'améliorer la précision ocr? – thekingmaker

+0

Pas que je sache. Comment ImageMagick sait-il que la partie de la ligne qui a été supprimée n'est pas la ligne et fait partie du personnage. À côté: Si ma réponse précédente était d'aide, s'il vous plaît envisager de lui donner un vote-up – fmw42

+0

Parfois, vous avez besoin d'upvote questions des nouveaux utilisateurs de StackOverflow afin qu'ils aient assez de points pour upvote vos réponses ... ;-) –

0

Cette commande ImageMagick est-elle meilleure dans le résultat?

convert 1sa.jpg -morphology bottomhat "20x3:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" -negate result.png 

enter image description here

+0

non travailler ce que je veux dire, c'est que je veux l'image de sortie afin que l'ocr ne détecte pas les pixels blancs (qui pourraient être vus à l'œil nu) près du texte. Et merci pour votre aide :) – thekingmaker

+0

Le fond est blanc. Comment puis-je savoir quels pixels blancs vous voulez dire? – fmw42

+0

désolé de ne pas expliquer correctement, j'ai recoloré ces pixels blancs en rouge [1]: https://i.stack.imgur.com/umqer.jpg – thekingmaker