複数行にわたるアラビア語の詩の検出


12

コーランアプリを構築する必要があり、ユーザーがそれに触れたときに詩を読みたいです。私が直面している問題は、一部の詩が1.5行に拡大する場合があります(ハイライトされた赤色の詩)または1/4行にちょうど収まることです(強調された緑色の詩)。したがって、各詩をtextviewまたは他のビューに追加しても機能しないようです。

2番目の画像の赤い部分のような詩を検出したい。詩の音声ファイルがあるので、テキストを音声に変換する必要はありません


1
ページは画像データまたはレンダリングされたUnicodeテキストとして提供されていますか?

Text to Speech ..しかし、その後、私たちにあなたの研究を見せてください。

私はそれぞれの詩の画像を動的にimageviewに追加しようとしましたが、問題が発生するのは画像ビューがそのように1.5行に拡大しないことです。時々、いくつかの詩は1行半行を必要とするかもしれません。これを克服するにはいくつかの提案が必要です。

1
2行を使用し、オーバーヘッドがありますか?

1
1行半とは、画面の幅を占有し、次の行の半分を占有するということですか?

回答:


9

これは、単純なテンプレートマッチングでかなり簡単に解決できます。どのように設定したのか正確にはわからないので、アルゴリズムを一般的に説明し、イラストを使用します。

  • 節の番号には、節の開始と終了を簡単に検出できる独特の境界線があることに注意してください。そのため、そのパターンの2値化テンプレートを作成して保存します。このようなもの:

    ここに画像の説明を入力してください

  • 画面の行数は事前にわかっており(ページをフォーマットしている)、各詩の高さは一定であるため、詩の中心線のY座標が画面上のどこにあるか(アルゴリズム的に)簡単に推測できます。 。これはアイデアを示しています。

    ここに画像の説明を入力してください

  • ユーザーが詩に触れたら、XY座標を取得し、Y座標を最も近い詩の中心にスナップします。

  • 次に、X座標から始めて、その行全体で単純なテンプレートマッチング(相互相関)を実行します。前方(左)の最初の一致(相互相関のピーク)は、詩の終点になります。逆方向(右)に一致するものがない場合は、1節上に移動し(中心線のY座標がわかっているため、これを実行できます)、繰り返します。左端からの最初の一致は、詩の開始点になります。同様に、行に前方一致がない場合は、1行下に移動して繰り返します。

    アイデアの簡単な説明を次に示します。黄色のボックスは、ユーザーが詩をタッチする場所です。次に、テンプレートと相互相関を行うと、青い円が一致します。

    ここに画像の説明を入力してください

    あなたが実際にそれを見ることに興味があるなら、私もこの答えでテンプレートマッチングを使用します。

  • 詩の開始点を決定したら、アラビア語のテキスト認識エンジンを使用して、その境界内の詩番号を推測し、対応するオーディオファイルを再生します。


より簡単なソリューション:

これをやりたくない場合、より簡単な解決策は、詩の開始点のXY座標を保存することです(単純にして、中心点を使用します)、ユーザー入力の座標を取得したら、再びスナップすることができますそれを中心線まで移動してから、後方に歩いて詩の始まりを確認します。これには、高速であるという利点があります。

あなたはコメントで同様のアイデアを拒否しているように見えたので、私はこれを最初の解決策として提案しませんでした。結局、それはあなたの制約に依存します—むしろあなたはむしろ計算作業(テンプレートマッチング—ところで、テンプレートを保存する必要があります)を行うか、メモリを使用する(座標を保存する)でしょうか。

もし私があなたなら、私はおそらくこれを使うだろうが、画像処理ソリューションは試してみるのが楽しいかもしれない。


ヨダや他の人は、この問題をもう少し詳しく説明してもらえますか?!実際に知りたいと思っているのは、青い丸の中に数字をどのようにまたはどのように取るかです。どうもありがとう!

@xmenus円にロックインしたら(特徴的な境界線にパターンマッチングを行うことで)、内部のコンテンツを識別するためにアラビア語のテキスト/数字認識ライブラリを使用する必要があります。私はアラビア語を知らないので、何もお勧めできません。OPに聞いてみてください...
Lorem Ipsum

@xmenusアラビア語で助けが必要な場合は、私に尋ねることができますが、アラビア数字を単に検出したい場合は、サークルで行っているのと同じテンプレートマッチングを行うことができます。
スペイシー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.