- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マジック選択(エッジに対するスナッピングをおこなう領域選択)の実装方法)
マジック選択(エッジに対するスナッピングをおこなう領域選択)の実装方法
このQ&Aのポイント
- PhotoShopのマジック選択ツールのような画像領域選択インターフェースを開発中のアプリに組み込みたいと思っています。
- ユーザーに複雑な図形の選択をさせたいのですが、選択したパスが近くのエッジを検出して自動的にスナッピングする機能が欲しいです。
- 建築図面などのモノクロ画像を対象としています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#17919
回答No.2
マグネットツールみたいなのでしょうか。 マグねとツールもどきをちょろっと作ってみましたが、 マウス座標近辺のピクセルをGetPixelでカラーを取得して合計、その9マスのカラーの合計を出し、差が大きければエッジとみなして、ポイントリストに追加。 後は、このポイントリストでリージョンを作ってあげて選択範囲とすればいいのではないでしょうか?
その他の回答 (1)
noname#17919
回答No.1
想像ですが、 塗り潰しと同じような原理だと思いますが、 クリックした点Aの情報Bを読み取り、 点Aを基点に十字方向に再帰を繰り返し、 再帰の点内で許容範囲の情報Bなら選択フラグを立てる、かなぁと思います。
質問者
補足
なるほど、領域を拡大していくようなやり方ですね。 現状ではユーザに多角形領域の頂点をいちいちクリックしてもらっているので、そうやればかなり進歩すると思います。 このとき、もっとも単純な実装では 2値化 --> 塗りつぶし --> 輪郭抽出 --> パスに近似 のようになるとおもいますが、わがままを言うともっとユーザと相談しながら領域を決めていく方法はないでしょうか? 言ってることがファジーでごめんなさい。 相手が建築図面をそのままスキャンしてきたような画像なので、四角い部屋を選択しようとしてもどっかに穴が開いていたり、文字が書いてあったり、フローリングの部屋なんか網掛けがかかっていたりしてちょっと複雑なのです。
お礼
>マグネットツール 調べてみましたがまさにこれでした。 このツールは非常に参考になります。 基本的には白黒線画なのでしきい値はいい加減でもいけそうです。