質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

3回答

1312閲覧

曖昧な塗りつぶしのアルゴリズムについて

LaLaLand

総合スコア107

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

1クリップ

投稿2017/10/10 16:03

画像の中の閉曲線で囲まれた領域を塗りつぶしたいのですが、どのような手法で塗りつぶしたらよいでしょうか?
なお、閉曲線はあくまで曖昧なもので、少しぐらい開いてても構わないとします。
また、閉曲線の色も一色とは限らない状況です。
さらに、閉曲線は凸とも限りません。

つまり、↓のような状況です。(図では凸になっていますが、実際には凸とは限りません。)
イメージ説明


どなたか、アルゴリズムをご存知の方がいらっしゃいましたら、ご教示ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

下記の方法でどうでしょうか?

①対象領域を細線化アルゴリズムで細線化し、幅1pxにする。
②対象領域のピクセルを全スキャンし、巡回セールスマン問題の高速解法(2-opt法)などでつなげるピクセルの座標および順番を決定する。
③つなげる順番と座標は配列などにリスト化しておく。
④エルミート補間などの補間法を用いて、補完した曲線を描く。この補完したピクセルもリスト化しておく。
⑤ ③と④のピクセルの重複度を調べる。
⑥重複度は一定値以上なら塗りつぶし、一定値以下なら塗りつぶさない。

投稿2017/10/12 01:01

soma62jp

総合スコア141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LaLaLand

2017/10/20 05:31

なるほどです ちょっと難しそうですが、このやり方もチャレンジしてみたいと思います
guest

0

閉曲線の内側を塗りつぶすという処理を考えるならば、まずは与えられた点や線から閉曲線を定義できるかを考えられるとよいかと思います。
閉曲線が得られるならば、あとは通常の塗りつぶし処理を実行する形になります。
実装イメージは与えられるのがビットマップなのか閉曲線候補となる各点の情報のみなのかといった入力にもよりますので、回答に含めるのは難しいです。

投稿2017/10/11 01:39

編集2017/10/11 01:42
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ポイントは、ある点が塗りつぶし対象領域に含まれるかどうかの判定だと思います。塗りつぶし領域を定めるために、適当に決めた初期ピクセルの画素値をPV0としますと・・・

###厳密な領域判定
判定は「テスト対象のピクセルの画素値がPV0と一致しているか?」になるかと思います。

###曖昧な領域判定
アイデアとしては、テスト対象のピクセルPおよび近傍のピクセル(そのようなピクセル集合をPsetと呼ぶことにします)の画素値も考慮する方法が考えられると思います。例えば判定方法を以下のようにするなど。

(1) Psetの全てのピクセルの画素値がPV0に一致
(2) Psetの全てのピクセルの画素値の平均とPV0の差が許容誤差内

ちなみに、(1)、(2)いずれにせよ、境界線ぎりぎりまでの領域ではなく、少し内側の領域が塗りつぶされます。人間が行うように「境界線が破れている部分を補完して、その境界線ぎりぎりまで塗りつぶす」ということがしたい場合はもう一工夫必要だと思います。

投稿2017/10/11 01:25

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問