2017-12-19 21 views
0

ここでは、液体中を移動する球によって引き起こされる気泡を示す実験から得られたいくつかの画像を示す。MATLABを使用してイメージ内のバブル領域を取得する方法は?

Example cavity Another cavity example

今、私はMATLABを使用して、すべての画像から泡の面積を取得したいです。最初に私の心に来るのはエッジ検出です。映像ショー、結果(下記)の要件を満たしていないとして、次に、手動でトリミングした画像のキャビティエッジを取得する

A = imread('D:\1.jpg'); 
BW1 = edge(A,'sobel'); 
figure, imshow(BW1) 

:だから、私は、次のコードを使用してみました。また、私はまだバブルの領域を取得する方法を知らない。

result

だから、誰かが私が何をすべき私に言うことができますか?

答えて

0

私はあなたがバックグラウンドの減算を使用し、単純なセグメンテーションを試みるべきだと思います。 あなたはバブルの面積を取得するためにregionpropsを使用することができます。

https://www.mathworks.com/help/images/ref/regionprops.html

それはかなりうまく動作するはずのように私は感じます。きれいなセグメンテーションを得るのに苦労したら、可能であれば暗い背景を選び、いくつかの横方向の照明を使って光の拡散を利用することで、背景とのバブルのコントラストを高めるために、バブル。

最後にセグメンテーションを使用すると、気泡が、正確な共振器端面を得ることの問題については、タンク

0

内に閉じ込められる知っているので、コンピュータビジョンシステムツールボックスを持っている関心領域(ROI)で実行する必要がありますvision.ForegroundDetectorオブジェクト。StaufferとGrimsonのGMMバックグラウンドの減法を実装しています。実装は非常に高速で、複数のコアを活用しています。この例のhow to use background subtractionを確認してください。

バブルの領域を見つける問題については、bwareaコマンドを使用してください。 https://www.mathworks.com/help/images/ref/bwarea.html、それはイメージのすべての白いピクセルを合計します。

0

私はバックグラウンド減算がこのバブル領域を計算する最も効率的な方法だと考えています。後で開閉アルゴリズムを使用して、他の領域をフィルタリングする必要がある場合があります(imopen imclose):https://uk.mathworks.com/help/images/ref/imopen.htmlを参照してから、bwareaを適用して面積を計算します。また、impixelinfoコマンドを使用して、気泡の強度レベルと他の領域を比較することができます。したがって、気泡を抽出するためのしきい値画像を使用することもできます。これは、すべての画像に同じしきい値レベルがある場合にのみ機能します。さらに、あなたの画像に完全に依存しているこれらすべての技術を組み合わせて、より良い結果を達成することが可能です。

他の形状ベースの技術もまた、泡領域領域を抽出するために使用することができる。

関連する問題