曲線を検出するにはどうすれば良いですか?

16 ビュー (過去 30 日間)
shiomi
shiomi 2023 年 5 月 24 日
コメント済み: Shunichi Kusano 2023 年 5 月 26 日
私はMATLABを用いて画像解析を行っている者です。
画像対象としては、粒子と糸が画像内に映っています。
(下に参考画像として添付いたします。)
私はこの糸だけを取り出した画像を作成させたいと思っています。
そこで質問なのですが、この曲線を検出するプログラムがありましたら、
ご教示いただけないでしょうか。
また、その他の方法があればご指摘いただけますと幸いです。
以上、よろしくお願いいたします。

採用された回答

Shunichi Kusano
Shunichi Kusano 2023 年 5 月 24 日
画像を拝見しますとそれなりにか細い線なのできれいに取り出すのは難しいかもしれませんが、まずは
fibermetric関数を使ってみてはいかがでしょうか。線状オブジェクトの強調に適しています。thickness次第で結果が大きく変わるので、線の細さに合わせて調整してみてください。
  2 件のコメント
shiomi
shiomi 2023 年 5 月 26 日
ご返信ありがとうございます。
早速、ご提案いただいた関数を使用してみました。
以下添付した画像のように、取り出したい線部分のみならず
周りの粒子までも検出してしまうようです。
この関数は、線状のオブジェクトと共に粒子等の点が映っていると
上手く取り出すことはできないのでしょうか。
(私の知識、技術不足で申し訳ありません。)
thicknessの値は色々と変更してみましたが、同様な結果となりました。
Shunichi Kusano
Shunichi Kusano 2023 年 5 月 26 日
周りのゴミみたいな点はモルフォロジー処理で取り除けるかと思います。
使えそうな関数
ですが、肝心の曲線部分もまとまって検出するのは難しく、局所的に見るとゴミみたいな検出の集合になると思うので、上記関数を使うと同様に消えてしまう部分が出てきます。fibermetricでできる限り強調しつつ、曲線本体が消えない程度にパラメータを加減して周囲のゴミを極力減らす感じになるかと思います。
また、途絶え途絶えでも検出できれば、bwskelで細線化したあとで、X,Y座標を抽出→欠損部分をinerp1関数で無理やり推定、みたいな方法はありかと思います。

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!