OpenCVで線の補完の方法について(画像処理)
下記に載せた画像の様な画像中の黒い線(上側)と黒い線(下側)の隙間を線で補完したいのですが、プログラムの書き方が分からなくて困っています。
もしわかる方がいらっしゃれば是非教えてください。
(入力画像は黒の線のみが書かれた画像で、みどりの線のように隙間を補完したいです。補完する線はなめらかな線でも直線でも構いません。また、補完する線の色は何色でも構いません。黒の線(上側)と黒の線(下側)は同一直線上にはなく、かつ平行でもないとしてください。)
画像中の赤のコメントはプログラムの流れに関する補足です。
OpenCV2.4.6,VisualC++2010を用いています。入力画像の形式は24bitで白黒のBMP画像です。
処理は出来れば早い方が良いのですが、時間がかかっても大丈夫です。
プログラムの流れは以下の通りです。
(1)線の太さ(幅)を求める(最頻値(statistics mode)を使う?)←実際の入力画像は印刷された線画に手書きの線を加えた紙をスキャンした画像なので、線の太さが2通りあり、書かれている数が多い線の方の線と線の隙間を保管したいので。
(2)もし線の太さが(1)で求めた線の太さであり、かつ線と線の隙間が10ピクセル以内であれば線を補完する(画像中のaとbの座標を求めてcvLineを使う?)←10ピクセルは目安です。
(3)線と線の隙間が補完された後の画像を表示する(cvShowImageを使う)
説明が下手で申し訳ないのですが、もしわかる方がいらっしゃれば教えてください。
私自身、プログラムは大学の授業レベル、OpenCVは使い始めて数ヶ月なので詳しくないです。
なので、言葉ではなんとなく分かっていても実際にプログラムが組めない状態です。
(1)~(2)のプログラムの一部しか分からなくてもヒントになるので一部でも分かる方がいらっしゃれば是非教えてください。
よろしくお願いします。
お礼
お礼が遅くなってしまい申し訳ありません。 URLまで貼っていただきありがとうございます。 画像に写っている定規を自由変形できたらなぁと思ったのですが・・・。 直線を引いて、それを自由変形しようと思います。 お早いご回答ありがとうございました!