問題タブ [flood-fill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2791 参照

matlab - 連続していないアウトラインに基づいて、塗りつぶされた楕円を含むマトリックスを作成する

0個の値のマトリックスを作成しようとしています。1個の値が楕円形を塗りつぶしています。私の楕円は、minVolEllipse.m(リンク1)を使用して生成されました。これは、楕円方程式の行列を「中心形式」と楕円の中心で返します。次に、Ellipse_plot.m(前述のリンクから)のコードスニペットを使用して、ベクトルを長軸/短軸にパラメーター化し、パラメトリック方程式を生成し、変換された座標の行列を生成します。あなたはこれがどのように行われるかを見るために彼らのコードを見ることができます。結果は、楕円に沿ったポイントのインデックス位置を持つ行列です。グリッドポイントの数Nを途方もなく高い値に設定しない限り、楕円の輪郭に沿ったすべての値が含まれるわけではありません。

MATLABのプロットまたはパッチコマンドを使用すると、探している結果が正確に表示されます。ただし、これを0の値と1の行列として表現し、パッチが空白を埋める必要があります。MATLABにこの機能があることは明らかですが、それを実行するためのコードをまだ見つけていません。私が探しているのは、画像処理ツールボックスのbwfillがどのように機能するかに似ています(リンク2)。楕円が連続していないため、bwfillは機能しません。そのため、関数は1つの値で完全に満たされた行列を返します。

うまくいけば、私は問題の概要を十分に説明しました。そうでない場合はコメントしてください。投稿を編集して明確にすることができます。

編集:

Ellipse_plot.mからの2-DXベクトルをEllipseDirectFit.mへの入力として使用する戦略を考案しました(リンク3)。この関数は、楕円関数ax ^ 2 + bxy + cy ^ 2 + dx + dy + f=0の係数を返します。これらの係数を使用して、楕円のx軸と主軸の間の角度を計算します。この角度は、中心軸と長軸/短軸とともにellipseMatrix.m(リンク4)に渡され、塗りつぶされた行列が返されます。残念ながら、マトリックスは私が望むものから回転していないように見えます。これが私のコードの一部です:

編集2:

@BenVoigtからの提案への応答として、この問題のforループソリューションをここに記述しました。

これは技術的には問題の解決策ですが、私は非反復的な解決策に興味があります。私はこのスクリプトを多くの大きな画像に対して実行しており、非常に高速で並列である必要があります。

編集3:

この解決策をありがとう@mathematical.coffee:

ただし、これを行うにはまだ良い方法があると思います。上記の両方の試みよりも高速に実行される、私が行ったforループの実装を次に示します。

このforループなしでこの目標を達成する方法はありますか(合計画像サイズは[幅の高さ]のままです)?これが高速である理由は、ポイントが楕円内にあるかどうかを判断するために画像全体を反復処理する必要がないためです。代わりに、中心の長さ+/-最大の主軸である正方形の領域を単純に反復することができます。

0 投票する
1 に答える
582 参照

c# - wp7 xna フラッド フィル Texture2D アルゴリズム

WP7 XNA で texture2D を塗りつぶす必要があります。

WP7 XNA で使用するコードを探しています。

何か案が?

0 投票する
1 に答える
822 参照

objective-c - フラッド フィル クラッシュ

開発中の iPhone アプリで単純なフラッド フィル アルゴリズムを動作させようとしましたが、正しく動作させることができません。

実際のプロセスはうまく機能していますが、塗りつぶしが大きすぎるとアプリがクラッシュします。私が言えることは、実行中のすべての関数からスレッドがオーバーフローしているためです。私が読んだことから、スタックを実装する必要がありますが、これがどのように機能するかわかりません。

スタックを実装したり、別のアルゴリズムを使用したりする方法についての助けをいただければ幸いです。

ベスト、ダレン

0 投票する
4 に答える
4009 参照

iphone - 図形を色で塗りつぶす方法

Objective-C と iOS の開発は初めてです。コア描画で描かれたいくつかの図を含むビューがあります。これらの形状を色で塗りつぶしたいのですが、形状のパスやコンテキストがわかりません。Objective-C にはフラッド フィルやプット ピクセルなどの機能があるので、ストロークの色だけでビュー内の任意の形状を塗りつぶすことができます。

これにより、いくつかの共通領域を持つ円と正方形が作成されます。ユーザーがその領域をタップしたときに、特定の領域を色で塗りつぶしたい。

0 投票する
3 に答える
16068 参照

algorithm - どのフラッドフィルアルゴリズムがパフォーマンスに優れていますか?

フラッドフィルに似たアルゴリズムを実装しようとしています。問題は、それをどのように実装すべきかわからないことです。たとえば、再帰的-非再帰的です。
それぞれに欠陥があることは知っていますが、そのうちの1つは他の1つよりも高速である必要があります。非再帰が毎回4つの新しいポイントを割り当てると、再帰はスタック上で新しい関数を開きます。
非反復の例:

編集:600X600ピクセルのマップに次のアルゴリズムを適用します。塗りつぶしはマップ全体に適用されるわけではありませんが、反復ごとにマップの約30%〜80%をカバーする必要があります。私のポイントは、高さマップでエッジを検出し、さらに使用するためにそれらのエッジにマークを付けることです。

0 投票する
1 に答える
2185 参照

algorithm - Unity 3D - フラッド フィル / ペイント バケット アルゴリズムでエンジンがクラッシュし続ける

Unity で動作するフラッド フィル アルゴリズムを作成しようとしています。アイデアは、ユーザーが選択した色に基づいて、白地に黒の線画のセクションに色を付けることです。フラッド フィル アルゴリズムのいくつかの実装を試しましたが、それらはすべて呼び出されたときに Unity をハングさせます。

これに関するヘルプは大歓迎です。これは重要なプロジェクトの一部として必要です。コード、アルゴリズム設計、またはこれを機能させるための代替方法の改訂に関する提案は大歓迎です:)

コード:

0 投票する
1 に答える
885 参照

c++ - C++ でのフラッド フィルの難しさ

マトリックスを塗りつぶすこのプログラムを作成しましたが、何かがうまくいきませんでした。コードは次のとおりです。

Point は、先ほどコードで定義した構造体で、x と y のみを整数として含んでいます。行列が空の場合、プログラムは行列を正しく埋めます。例:

出力が得られます:

しかし、私が入力した場合:

私は得る

それ以外の

ポップするたびに座標をチェックすると、境界から外れていることがわかります (たとえば、座標 1 -1 が返されますが、そうすべきではありません)。

0 投票する
2 に答える
2575 参照

c - 効率的な 8 接続フラッド フィル

私は、Paul Heckbert の優れたシード フィル アルゴリズムを使用してきました (ここと本Graphic Gems (1990)で入手可能)。

アルゴリズムが表示される可能性があるため、複雑です。よく考えられていて、速いです!残念ながら4連スペース限定です。

8 連結空間 (対角線に沿った漏れ) のための適切に設計された高速アルゴリズムを探しています。何か案は?

すべてのセルを再帰的にアクセスしたり、スタックに繰り返しスローしたりすることは、この質問の目的のために適切に設計されているとは見なされません。疑似コードで利用できるアルゴリズムが最も高く評価されています (Heckbert のアルゴリズムは、コードと疑似コードの両方で利用できます)。

ありがとう!

完全を期すために、Heckbert のアルゴリズムをここにコピーします。

0 投票する
1 に答える
1831 参照

android - androidでフラッドフィルアルゴリズムを実装するには?

Androidでフラッドフィルアルゴリズムを実装する方法.ただし、コードはc言語で記述されています.Androidでアルゴリズムを実装できますか.利用可能なオープンソースコードまたはWebサイトのチュートリアルリンクはありますか

0 投票する
3 に答える
6220 参照

android - Android:このフレーミングペイントを行う方法は?

私は以下のようないくつかの静止画像を持っています:

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

さて、顔や手に触れると、選択した色がその肌の部分に塗りつぶされます。

結果の以下の画像を参照してください。

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

では、上記のような結果を得るにはどうすればよいですか?やり直しと元に戻す機能もそこにあるはずです。

FloodFillカラーを試してみましたが、それを行うと、特定の部分にしかカラーを入れることができません。FloodFillは、同じpixwlカラーが来るまでカラーを塗りつぶすだけです。タッチ場所のピクセルの色が変更された場合、その色は塗りつぶされません。

だからUsinfFloodFillは下の画像のような結果を得ました。手を押すと、手の部分だけが色で塗りつぶされます。代わりに、もう一方の手と顔にも色を塗りつぶしたいと思います。 ここに画像の説明を入力してください

だからこの場合私を助けてください。

編集済み

いくつかの返信の後、私はこのような解決策を得まし

しかし、それでもメモリの問題があります。色を描くのに多くのメモリを消費します。だから誰かが私を助けてくれますか?