2015-11-09 1 views
2

enter image description hereJava - Trouver des lignes entre x y coordonnées définies

J'ai x, y coordonnées ensemble, qui construisent une lettre alphabétique anglais/forme comme comme dans l'image. Ils ne sont pas en ligne droite car les coordonnées sont capturées lorsqu'un utilisateur les écrit.

Je veux savoir à travers une application Java en utilisant les coordonnées

  • Combien de lignes droites sont là
  • Combien de lignes sont horizontales
  • Combien de lignes sont verticales
  • Combien de lignes sont diagonales

Par exemple, pour l'image suivante, nous pouvons voir qu'il y a environ 4 str environ deux lignes où l'une est verticale et trois est horizontale.

Comment est-ce que je pourrais faire ceci? Y a-t-il un terme/nom pour ce genre de problème?

+0

Vous cherchez un OCR? – dotvav

+0

Pas besoin de reconnaissance de caractères. Juste le compte de ligne pour les questions énumérées par des coordonnées données. –

Répondre

2

Ce problème peut être classifié comme OCR (Reconnaissance optique de caractères, Java a des bibliothèques pour cela) ou Détection de contour. Si vous souhaitez implémenter vous-même vous avez basiquement 2 choix principaux:

  • filets Neural
  • standard von algorithme Neumann

Si vous n'êtes pas dans les réseaux de neurones alors le plus simple est d'utiliser valeurs de tolérance. E.g .:

La ligne horizontale est ssi tout 2 points sont éloignés d'au plus x pixels et l'angle de leur ligne est au plus égal à y degrés de la ligne horizontale.

réponse Peut-être relative: https://stackoverflow.com/a/3261532/4663542

+0

Reconnaître la lettre n'est pas nécessaire pour moi. Je veux juste le compte des lignes. On dirait que l'exemple de "valeur de tolérance" est une réponse pour moi. Qu'est-ce que cette technique appelle, donc je peux rechercher un exemple de code. –

+1

Je ne pense pas qu'il existe un terme spécifique pour la technique. L'idée est d'utiliser une valeur ou une plage de tolérance lorsqu'on compare deux nombres: 'a> b-range && a <= b + range' dans sa forme la plus simple. Mais la gamme peut être une fonction basée sur une distribution statistique, comme la distribution gaussienne: https://en.wikipedia.org/wiki/Normal_distribution – cdm