• 締切済み

画像のカタマリを判定

白黒2色を使ったの画像があります。 ■■■■■■■■■■■■ ■■■■■□■■■■■■ ■■■■□□□■■□■■ ■■■□■■■□□■□■ ■■□■■■■■■■□■ ■■□■□□■■■■□■ ■■■□■■□■□□■■ ■■■■■■□□■■■■ ■■■■■■■■■■■■ 任意の黒ドットから白ドットに触れずに画像のフチにたどり着けるのか否かを判定する効率的なアルゴリズムを知りたいです。 別の言い方をすれば、その黒ドットは島なのか大陸なのかの判定です。 もしご存知の方がいらっしゃいましたら とっかかりとなるキーワード等でもかまいませんので、教えていただけますでしょうか。 一応、環境はflashのaction script3ですが別の言語でも構いません。 よろしくお願いいたします。

  • Flash
  • 回答数1
  • ありがとう数2

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> flashのaction script3ですが別の言語でも構いません。 ということで。 私も回答者の中の1人に入っていますが, 私以外の方も別言後で色々な方法を書かれています。 質問番号:3990775 「多角形の内部かどうか判定する方法」 http://okwave.jp/qa3990775.html そこ(回答番号:No.7)でも 書いていますが, 私だと,とにかく白線内を塗りつぶします。島を島として塗る。 それでその塗り(島)と ■ との当たり判定をとります。  塗り(島)と■が当たっている→画像のフチにたどり着けない  塗り(島)と■が当たっていない→画像のフチにたどり着ける 私の場合なにしろ出がグラフィック系ですから, 内積だの曲線の方程式だのは考えていられません。 そこでは一応 ActionScript1.0 でベクタ図形を塗りつぶす方法を書いていますが, ビットマップ画像だと塗りにくいかもしれません。 その他データなどの状況によるので何とも言えません。 場合によっては塗りつぶすというより, 白線境界内を □ のスプライトやムービークリップでり配置するということが必要かもしれません。 塗りつぶす(または埋めつくす)ということまでができると後は当たり判定でできると思います。 私は ActionScript3.0 に関しては全くと言って良いほどわかりませんが, 当たり判定自体は,BitmapData との当たり判定や ムービークリップと点との当たり判定 など色々できると思います。 Google検索 「当たり判定 ActionScript 3」 http://www.google.co.jp/search?hl=ja&q=%E5%BD%93%E3%81%9F%E3%82%8A%E5%88%A4%E5%AE%9A+ActionScript+3 その他何かヒントになることが見つかるかもしれません(???)。 Google検索 「塗り潰し アルゴリズム」 http://www.google.co.jp/search?hl=ja&q=%E5%A1%97%E3%82%8A%E6%BD%B0%E3%81%97+%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0

zarunaka
質問者

お礼

ご回答ありがとうございます。 すごく参考になります。 今のところ輪郭抽出のアルゴリズムで http://homepage2.nifty.com/tsugu/sotuken/ronbun/sec3-2.html#0014 で、画像のフチにたどり着くか起点に戻ってくるかで判定しようかと考えています・・・が処理速度が心配で・・・ 塗りつぶしと、輪郭抽出どちらも試してみて処理速度を比べてみようと思います。 あと、補足ですが ■■■■■■■■■■■■ ■■■■■□■■■■■■ ■■■■□□□■■■■■ ■■■□□■■□□□□■ ■■□■■■■■■■■■ ■■□□□□■■■□■■ ■■■□■□□■□□■■ ■■■■■■□□■■■■ ■■■■■■■■■■■■ このように島が存在しない画像もありえることを想定しています。

関連するQ&A

  • Flashでブラウザ判定したい

    Flashでブラウザ判定したい Action Script を使って、ブラウザ判定を行い、ブラウザに応じたフレームに移動するFlashを作りたいです。 具体的には、IEとOperaと携帯ブラウザとその他ブラウザ(FireFox,Chromeなど)の4種類くらいで分けたいと考えています。 まずUAを取得し、それに応じてIFとGotoandStopでいけそうなのですが・・ ウェブで少し調べると、Java Scriptなどと組み合わせると出来そうでしたが、ASだけでは無理なのでしょうか? もし可能なら方法(AS)をご教授下さい。 環境: Windows Vista Flash Pro 8

    • ベストアンサー
    • Flash
  • Flashで画像のトランジション

    http://www.gohawaii.jp/ このサイトのFlashで画像が波で切り替わるのですが どうしたらこの様なトランジションが出来るのですか? アクションスクリプトでするのですか? 宜しくおねがいします。

  • Flash Liteで作成したFlash待ち受け画像をループ再生する方法

    超初歩的な質問になりますが、Flash Lite1.1で作成したFlash待ち受け画像を携帯上でループ再生する方法を教えて下さい。 Flash講座などでswfファイル自体にループ再生するよう指示するアクションスクリプトの書き方を探して試してみましたが、ループしませんでした。auのFlash lite対応機種2台で試しました。 単に書き方が間違っているのでしょうか?それとも、ループ再生させるアクションスクリプトはFlash liteには対応していないのでしょうか?何か別の方法があるのでしょうか?アクションスクリプトは全くわからないので、検討もつかないという状態です。 どうぞ宜しくお願いします。

  • 外部から読み込んだ画像を動かすことはできますか?

    FLASHのみでホームページを作ろうと思ってます。 そのトップに使用する画像を定期的に変更したいので、 変更が楽なように画像は外部から読み込ませることにしました。 そこで質問なのですが、外部から読み込んだ画像って、 モーショントゥイーンを使って動かすことは出来ますか? FLASHを勉強しているというより、HPを作るのに必要なスクリプトを探し出して組み立ててるので・・・ アクションスクリプトの知識はあまりありません。 アニメーションを作るのに特に困らないくらいの知識はあるつもりです。 参考URLでも教えていただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • ある矩形の中に複数の矩形が入りきるかを判定したい

    こんにちは、いつも拝見させてもらっています。 ある大きさの矩形の中に、違った大きさの複数矩形が収まりきるかを判定するアルゴリズムをご存知でしょうか? 具体的に言うと、複数のビットマップ画像を色々と並び替えて、一定の大きさの矩形(例えば1024*1024ドット)に収まりきるかを判定したいのです。 条件としては、 1.収めたい矩形のサイズは決まっている 2.張り合わせたい矩形は複数で、それぞれサイズはバラバラ 3.張り合わせたい矩形を回転させてはいけない(縦横のサイズは変更できない) 簡単だと思ったのですが、意外とうまく行きません。 数学にも疎いので、どういう方面を参考にして良いやらわかりません。 みなさん、お知恵をお越しください。 それではよろしくお願いします。

  • Flashで写真画像2枚をオーバーラップさせるのは簡単ですか?

    Flash初心者で、非常に基本的な質問で申し訳ありません。 Flashを使って写真画像2枚をオーバーラップさせることは簡単にできるのでしょうか。二枚の画像の途中で白い画面をはさまず、二枚が徐々にオーバーラップしていくようなトランジションができればと思っています。 このようなことがFlashでできるかどうかだけ教えていただけたら助かります。もしできる場合は、比較的簡単にできるのでしょうか。それともAction Scriptなどを使う必要があるのでしょうか。 どうぞよろしくお願いいたします。

  • VBAで画像のドット位置を探す。

    ビットマップ等の画像上にドットがいくつかあるとします。 このドットの位置を解析したいです。 あくまでこれをエクセルのVBAで実現させたいです。(VBはもっていないため) 私の考える流れは、(1)画像を取り込む。(2)黒色のドットを探す。(3)黒色ドットの位置を取得する。 上記をもとに、具体的に知りたいことを記載します。 (1)画像ファイルをどこにとりこめばよいかを知りたいです。エクセル上?ユーザーフォーム上? (2)ドットを探すにあたり黒色ドットの定義をどのように記述したらよいか知りたいです。 その定義にあう画像領域内のドットを探すことが目的です。 また検索する画像領域の範囲の定義の仕方を知りたいです。 (3)見つかったドットの位置の抽出の仕方を知りたいです。 そもそも、別のアプローチ方法などあればご教授していただきたいです。 ちなみにですが、画像処理についての知識はまったくない素人です。。

  • FLASH5のアクションスクリプトを使って、PCの日付を取得し月ごとに違う画像を表示させる

    こんにちは FLASH5のアクションスクリプトだけを使って、PCの日付を取得し月ごとに違う画像を表示する方法ってありますでしょうか?

  • 時間を判定するリンクボタン

    すみません。どなたか詳しい方お願いします。 Flashをやっているのですが ボタンの領域内に入ったときに時間判定をさせまして マウスポインタが3秒間領域内にあった場合→シーン移動 マウスポインタが2秒以内のうちに領域の外に出た場合→そのまま移動なし このような振り分けをしたいと思っています。 アクションスクリプトでやるのであろうということはわかるのですが プログラムがさっぱりわからなくて 何をどうしたらよいのか困っています。 詳しい方ご回答お願いいたします。 当方の所持していますバージョンはMXです。

    • ベストアンサー
    • Flash
  • マウスに反応した画像スクロール

    例えば500px×500pxの画像があるとして、それを200px×200pxのサイズのFlashで見せたいと思っています。当然Flashの方がサイズが小さいので画像の全体像は見えませんが、マウスの動きに反応して右なら右、下なら下にスクロールさせたいのです。このとき、ループではなく、画像の端までスクロールしたら止めたい(できればゆっくり・そっと止めたい)んですが、検索しようとしてもせいぜい「action script 画像 スクロール」ぐらいしか思いつかず、そういったスクリプトのサンプルが見つかりません。もしご存じの方、慣れているからそれぐらいなら書いてやるというような優しい方、おられましたらよろしくおねがいします。 イメージとしてはこんな感じです。 http://www.uniden.jp/jijitsu/

    • ベストアンサー
    • Flash

専門家に質問してみよう