Isso pode ser resolvido de maneira bastante direta com a correspondência simples de modelos. Não sei exatamente como você o configurou; portanto, descreverei o algoritmo em geral e usarei ilustrações.
Observe que os números dos versículos têm uma borda distinta que pode ser facilmente usada para detectar o início e o fim de um versículo. Portanto, crie um modelo binarizado para esse padrão e armazene-o. Algo assim:
Como o número de linhas em uma tela é conhecido antecipadamente (você está formatando a página) e cada verso tem uma altura constante, é possível inferir facilmente (algoritmicamente) onde as coordenadas Y das linhas centrais dos versos devem estar na tela . Isso demonstra a ideia:
Quando o usuário tocar em um verso, obtenha as coordenadas XY e encaixe a coordenada Y no centro de versículos mais próximo.
Em seguida, iniciando com a coordenada X, execute uma correspondência simples de modelo (correlação cruzada) nessa linha. A primeira partida (pico na correlação cruzada) na direção para frente (para a esquerda) será o ponto final do verso. Se não houver correspondências na direção reversa (à direita), mova um verso para cima (o que você pode fazer, porque conhece a coordenada Y da linha central) e repita. A primeira partida do lado esquerdo será o ponto de partida do verso. Da mesma forma, se não houver correspondência na linha, desça uma linha e repita.
Aqui está uma pequena ilustração da ideia. A caixa amarela é onde o usuário toca o verso. Você faz a correlação cruzada com o seu modelo e os círculos azuis serão a correspondência.
Eu também uso a correspondência de modelos nesta resposta , se você estiver interessado em vê-lo em ação.
Depois de determinar o ponto de partida do verso, use um reconhecedor de texto em árabe para deduzir o número do verso dentro dessa borda e reproduzir o arquivo de áudio correspondente.
Solução mais simples:
Uma solução mais simples, se você não quiser passar por isso, é armazenar as coordenadas XY dos pontos iniciais do verso (simplifique e use os pontos centrais) e depois de obter as coordenadas da entrada do usuário, é possível até a linha central e depois caminhe para trás para ver onde o versículo começa. Isso pode ter a vantagem de ser mais rápido.
Não propus isso como a primeira solução, porque você parecia rejeitar uma idéia semelhante nos comentários. No final, isso depende de suas restrições - você prefere fazer um trabalho computacional (correspondência de modelo - que, a propósito, também exige que você armazene o modelo) ou usar memória (armazenar coordenadas).
Se eu fosse você, provavelmente aceitaria este, mas a solução de processamento de imagens pode ser divertida de experimentar.