SSブログ

楽譜アーカイブアプリ - その27 ヒストグラムによるノイズ除去その2 [考え中の問題]

「まいん」ムービー消去のショックから立ち直れない。ぼーぜんしたまま続きを書いてるので、おかしなことを言ってるかもしれない。

9.3.2  具体的なアルゴリズム

あるていど判断できるようなヒストグラムになったとする。これからどうやってノイズ除去をやるか具体的に考えてみる。

タイリングしてそれぞれのタイルでヒストグラムに山がふたつあるかひとつしかないかを判断する。ふたつある場合は五線のある部分だとしてラティテュード補正する。ひとつの場合はスペース部だとして白で塗りつぶす。

このとき、
  • 近傍のタイルのヒストグラムのピークの位置は似通っているだろう
  • さらにスキャナ画像を対象にすると、画像の端以外のタイルのピーク位置はだいたい揃っているだろう
という仮定はそれほど間違ってないだろう。
0130fig0906.png
ふたつの近傍のタイルのヒストグラムが図-9.6のようになったとする。白に対応するピークは図中の点線の位置のようにあまり違わないだろう。また、上のヒストグラムには黒矢印の位置に黒のピークがあるが下のヒストグラムにはその位置にピークがない。下のタイルはスペース部だと判断していいだろう。

得られたヒストグラムからふたつのピークの位置を探し出す。タイル内の画素の値が全部同じでない限り、これは可能である。ふたつのピークのうち大きな値に対応する方を白のピーク位置とみなそう。

まず白に対応するピークはすべてのタイルに存在する。第1次近似として画像全体の白のピークを、すべてのタイルのピーク位置の平均としよう。画像の端は除外した方がいいかもしれない。

そして次にもう一方のピーク位置を黒のピークだと考えてやはり平均の位置を計算する。タイルごとにその平均位置に近い黒ピークを持つタイルは楽譜が書かれた部分であるとみなすことができる。

そこから離れた位置にピークがあるタイルに関しては
  • 黒に対応すると考えたピークが白によっている
  • ピークの高さ(画素数)がある閾値以下
の場合はスペース部候補とする。

楽譜のレイアウト上、スペース部が孤立していることはあまりなく連結しているはずである(タイルが十分小さいとして)。
そこで
  • 孤立しているスペース部候補
  • 譜面の存在するタイルに隣接するスペース部候補
は別の閾値を設けて候補からはずしたほうがいい。

タイルごとの平均としての白レベルと黒レベルが手に入るので、これを使ってラティテュード調整もやればいい。

これでおおまかなアルゴリズムはできた。

9.3.3  アルゴリズムの詳細

上のアルゴリズムの中でもう少し詰める必要がある部分をおさらいする。

ヒストグラムからふたつのピークを選び出す方法は
  1. ヒストグラムの隣りあうbinに入っている画素数の差分を取る
  2. あるbinの低い位置に対応する差分が正で、高い位置に対応する差分が負となるbinを探す
  3. 差分が0の場合はさらにその隣の差分を確認する
  4. 見つかったbinをその値(画素数)の大きい方から2つとる
とすればいい(binというのは画素数を数える明度の範囲のひとつをさす言葉)。つまり数値微分を使う。ということである。これはちゃんと考えれば簡単。こういうのってナメて十分考えずに実装を始めると、こんがらがっていつまでもうまくいかないことがある。こういうつまらないところで昔はずいぶん時間をとった。

隣接する候補は、OpenCVにあるモルフォロジー演算と同じようなErode&Dilateで検出できる。これ自身はそれほど難しいアルゴリズムではない。OpenCVというお手本もあるし。

先のアルゴリズムでは平均の白レベルと黒レベルを決めたが、画像の端でコントラストが低下していることはよくある。これは端の方で適応的に平均値をずらすような処理をすればいい。やりかたはいろいろあって、得意なのは適当な関数を定義してフィットする、という方法。しかし、この場合そこまでしなくてもいいだろう、たぶん。

また、画像の一番端のタイルがスペースでなくて、その内側にスペースのタイルがある場合は一番端もスペースとみなす、などもやったほうがいいだろう。

やっぱりFourier変換を使うやりかたより、こっちのほうがパラメータが少なそうだな。
nice!(0)  コメント(5)  トラックバック(0) 

nice! 0

コメント 5

つる美

まいんは真言宗、まいんは真言宗、まいんは真言宗・・・・

youtubeで
「Indukti - ...And Who's The God Now?! 」と検索してみてください。
0分40秒あたりから2分ぐらいまで。
ポーランドのグループなのに、まいんちゃんの宗教にえらくこだわっております。

by つる美 (2011-02-03 10:21) 

つる美

上記、失礼しました。
そのままコピペしましたが出ませんでした。

Indukti Who’s The God Now

これで出ます。一番上の10分のやつです。
by つる美 (2011-02-03 10:26) 

decafish

コメントありがとうございます。
おお、こ、これは...つる美さんらしい超マイナー発掘選曲。ポーランドのバンドですか。すごい。日本でこれを知っている人がいったい何人いるのやら。
しかし、僕の趣味としてはこの2:38から8:45までのところはカットした方がいいと思います。この中央の部分は音色はメタルで一見ハードですが迎合感というか、おもねった感じがあります。歌詞も英語だし。メタルってアウトローを気取っていますが、その発想は安全サイドで予定調和的なんですよね。
しかし、ほんとによくこんなの見つけてくるもんです。いや「まいんは真言宗」の空耳もそうですが。すごいなあ。
by decafish (2011-02-03 22:02) 

つる美

つる美です。わざわざ確認ありがとうございます。
2:38から8:45までいらないということは、この曲はイントロと空耳とコーダだけでよい。曲の本体は全部いらないということに・・・

ところで、全部お聞きになったのならお気づきかと思いますが、
同じ、この曲の9:32から最後までの空耳。
「さらさらウンコ、さらさらウンコ、さらさらウンコ・・・」

何!気がつかなかった?Decafishさんがそんなことでどうする。
ぜひ、もういちど確認お願いします。

by つる美 (2011-02-03 23:45) 

decafish

これは気がつきませんでした。というか、空耳には想像力が必要です。
ついでにもう一度聴き直しましたが、本体、いらないなあ。やっぱりヒヨってますよ。
by decafish (2011-02-04 06:33) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

献立01/30献立01/31 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。