Je suis en train de réaliser un projet de reconnaissance d'écriture hors ligne. Dans la phase de prétraitement, je dois normaliser la partie manuscrite de l'image binaire par sa taille et sa position. la partie d'écriture (pixels noirs) dans l'image et redimensionner et déplacer sa position?Normalisation des caractères manuscrits par taille et par position
Répondre
Votre problème est aussi vaste que le domaine du traitement d'image. Il n'y a pas de façon unique de segmenter une image en premier plan et en arrière-plan, donc la solution que vous trouvez ici fonctionne sur certains cas et pas sur d'autres. Cependant, la façon la plus simple de segmenter une image en niveaux de gris est:
% invert your grayscale so text is white and background is black
gray_im = 1 - im2double(gray_im);
% compute the best global threshold
level = graythresh(gray_im);
% convert grayscale image to black and white based on best threshold
bw_im = im2bw(gray_im, level);
% find connected regions in the foreground
CC = bwconncomp(bw_im);
% if necessary, get the properties of those connected regions for further analysis
S = regionsprops(CC);
Note: Beaucoup de gens ont des méthodes beaucoup plus sophistiquées pour segmenter et cela est loin d'être la meilleure façon de le faire. Après le post-traitement, vous vous retrouverez avec une (ou plusieurs) image ne contenant qu'un seul caractère. Pour redimensionner à une taille spécifique M x N, utilisez:
resized_bw = imresize(single_char_im, [M N]);
Pour décaler sa position, la meilleure façon que je sais est d'utiliser circshift()
fonction:
shifted_bw = circshift(resized_bw, [shift_pixels_up_down, shift_pixels_left_right]);
Note: circshift
enveloppe les colonnes décalées ou Si votre boîte englobante est trop étroite, la meilleure méthode consiste à remplir votre image et à la rogner au nouvel emplacement.
+1 pour être clair sur la difficulté générale, tout en offrant une option – Schorsch
- 1. normalisation des caractères Javascript
- 2. Normalisation rapide des caractères ESP
- 3. position d'ouverture par défaut de Google Chrome et la taille
- 4. Quelles fonctionnalités extraire pour la reconnaissance de caractères manuscrits?
- 5. getTextContent de Nœud avec normalisation des caractères blancs
- 6. position fixe par Position relative
- 7. Taille et position des fenêtres Geany
- 8. Obtention de certains caractères d'une chaîne par position
- 9. Taille et position de TabBarItem
- 10. groupe SQL unique par type et par la position
- 11. Obtenir des données par position dans l'adaptateur personnalisé par onClickListener
- 12. Remplacer le texte par des espaces et des caractères spéciaux
- 13. HTML/CSS position absolue et par rapport
- 14. Magento - Trier par Position et Nom?
- 15. Objets Salesforce et normalisation
- 16. Génériques et le casting par taille plutôt que par type
- 17. Faire rouler les journaux par taille et par heure
- 18. getElement par position?
- 19. C# Remplacer chaîne par position
- 20. ImageView position et la taille
- 21. Caractères par ligne et lignes par limite de textarea
- 22. regex pour correspondre à mot séparés par des caractères et entouré par des balises xml
- 23. Quels sont les paramètres apprenants dans la normalisation par lots?
- 24. Normalisation des espaces dans les atomes Prolog
- 25. Taille des bibliothèques statiques générées par Xcode
- 26. Comment segmenter des formulaires de texte manuscrits en sections et mots séparés?
- 27. Comment trouver et diviser une chaîne par des caractères répétés?
- 28. Diviser par des caractères de contrôle
- 29. Caractères alphanumériques correspondants séparés par des espaces
- 30. Toile Taille par défaut
Pourriez-vous être plus précis sur ce que vous demandez? Votre question est un peu floue. Le bas de cette page donne une idée de ce qu'il faut faire: http://yann.lecun.com/exdb/mnist/. Quoi d'autre est dans l'image en dehors de l'écriture. Avez-vous segmenté les caractères individuels? – Bull
Les échantillons manuscrits standard contre lesquels nous comparons auront une taille particulière et les lettres seront à une position particulière de la page. Donc, avant la comparaison entre ces deux, les lettres dans les échantillons d'entrée doivent être convertis à cette taille et placés dans la même position, ryt? comment faire ça dans matlab? – abc2013
Est un échantillon standard écrit à la main une seule lettre, un mot, une ligne de texte ou un paragraphe entier. Connaissons-nous la boîte englobante de chaque etter dans les échantillons de peuplement? "avant comparaison entre ces deux": quels deux? vous avez seulement mentionné les échantillons en tandard jusqu'à présent. Quel est le format des échantillons d'entrée? Que signifie "ryt"? – Bull