Segmentação de linhas e palavras em "redações"

Bom dia pessoal.

Estou tentando escrever um programa em java que faça segmentação em linhas e palavras conforme esse artigo Text_line_and_word_segmentation_of_handwritten_documents , escrito por Louloudis, Gatos, e etc…

Inicialmente

  • converti a imagem para escala de cinza
  • depois usei filtros de Gauss
  • usei tambem depois o filtro de Laplace
  • dai binarizei a imagem.

Até ai tranquilo.

Consegui agrupar os componentes conectados…

Separei em subconjuntos…

Filtrei os conjuntos e separei em blocos com seus respectivos centros de gravidades…
Os centros de gravidades são esses pontinhos “vermelhos-rosas”.

Acho que entendi o funcionamento da Transformada de Hough . A partir da origem transformar a coordenada cartesiana daquele ponto em coordenada polar para todos os angulos. Colocar o resultado em uma matriz acumuladora. Pegar a coordenada mais votada, a partir dessa coordenada polar de a linha ortogonal à ela.

A parte que estou com dificuldade é o que deve ser considerado para a Transformada de Hough, que é a parte 3.2. do artigo.
Até onde entendi ele fala que usa os centros de gravidades para construir o dominio de Hough.

  • Para cada ponto eu faço uma transformada em relação aos outros pontos como ele sendo a origem?

  • Ou cada ponto faz parte de uma transformada geral em relação a origem 0,0 ?

  • Apos só considero os votos que estejam de acordo com os graus de 85 e 95 com o p de 0,2*AH?

Agradeço qualquer ajuda.
Abs.

Qual biblioteca você está usando em Java? Porque a maior parte das bibliotecas possui uma função para a transformada de rough (na opencv, chamada roughlines) onde você pode passar a imagem toda e ele aplica as constraints descritas no artigo (as mesmas da sua terceira bolinha) para detectar as linhas.

No caso, a transformada vai ser aplicada para todas as possíveis linhas na imagem, ou seja, pontos que ao serem interligados ao centro de gravidade tenham o potencial para estar dentro de uma linha.