8

私は、光学音楽認識に関するAndroidプロジェクトに取り組んでいます。モバイルカメラで楽譜を撮り、音符や記号を認識しようとしています。私は前処理後の方法論に非常に精通していますが、これらの種類の作業は通常スキャナーの助けを借りて行われます。(代わりに、モバイルカメラを使用する必要があります)

直感的には、最初にハフ変換を使用して譜表(五線)を検出し、次にそれらと水平軸の間の角度を計算して、画像をその角度だけ回転させました。これは理論的には機能する可能性がありますが、ハフは線分を検出し、これらの線分の角度は一貫していません。そのため、機能しませんでした(おそらく遠近法の影響のため)

その後、多くのエッジ検出およびライン検出アルゴリズムを試しましたが、どれも安定して機能しませんでした。(周波数領域回転および線分検出器を含む)

今、私はAndroidのドキュメントスキャナーに似た新しいアプローチを考えています。画像をスキャンしたドキュメントのような形式に変換しようとしています。画像を横軸に揃えて、傾きや遠近感による影響を取り除きたいです。

この「ドキュメントスキャン」を実現する方法について誰かが何か考えを持っているのだろうか。または、ドキュメントの位置合わせや安定した線の検出について何かアイデアがあれば、それは私の将来の作業に役立つでしょう。ありがとうございました。

4

2 に答える 2

3

シートの左右の上部または下部のステーブの高さを測定し、それから角度を計算するだけです。唯一の難点は、高さを自動的に測定するのに適したポイントを見つけることです (つまり、譜表を垂直にスキャンする列を見つけます)。堅牢にする 1 つの方法は、ほぼ一定の幅の白いゾーンで区切られた連続した黒いピクセルが 6 つまたは多くあることを確認することです。あなたがそれを見つけたとき、あなたは、測定から外れている音符や記号がなかったと確信しています.

于 2012-04-11T12:01:14.867 に答える
2

最初にカメラの歪みを除去する必要があります:

http://en.wikipedia.org/wiki/Distortion_(optics)#Software_correction

次に、openOMR の実装方法に従って、次のコードを使用して FFT を実行し、画像全体が傾いている角度を見つけることができます。

http://www.koders.com/java/fid38ED5C64ADB6C4F5F01FB05FB08744AF159A8244.aspx?s=FFT#L23

于 2012-06-20T23:09:18.933 に答える