0

imerodeやimdilateのようなバイナリイメージに数式モーフを実装する方法はたくさんあります。また、この単純な操作をバイナリイメージで使用して、さまざまなオブジェクトや形状を検出するのにも使用されますが、私が今直面している問題は、この単純な操作、つまりグレースケールイメージをerode、dilateおよび多くをバイナリイメージに変換して適用することです。matlabのグレースケール画像で丸いオブジェクトを検出するグレースケールの形態を実装する方法は?

Selement = strel('disk',5);//disk type element used in morphology 
erodeimage = imerode(image,selement);//this is only implement on binary image 

上記のコードは、バイナリ数学のためのものです。私はどのようにグレースケール画像で同じ概念を実装しますか?

注:あなたは、グレースケールの数学に関するすべてのリソースを持っている場合は親切にモーフィングそれを提供したり、便利なリンクを提供

+0

'imerode'はグレースケールイメージで動作します。 [documentation](http://www.mathworks.com/help/images/ref/imerode.html)から: "IM2 = imerode(IM、SE)は、グレースケール、バイナリ、またはパックバイナリイメージIMを侵食します... " – beaker

答えて

0

MATLABでの数学的な形態は(MM)ライブラリがあるはずです。バイナリイメージに対するMM操作は、例/イラストとして示されていますが、ほとんどの場合、グレーレベルとして実行されます。

私は最も速いC++ライブラリがSMILだと思います。あなたはMatLabから呼び出すことができます。 Cで他の高速なものはthat one(シングルパスでの最適な開閉)です。 pあなたはグレイレベルの膨張を理解したいと思うなら、それはどのように動作するのですか?pあなたはその近傍(構造要素によって定義されます)のすべてのピクセルの値を分析し、 p付近に最も高い値に影響します。あなたはあなたのイメージの各ピクセルのためにそれを行います。 formulaを参照してください。

実際には中央値のようなランクフィルタですが、中央値を取る代わりに、最大(または侵食の最小値)をとります。明らかに基本的な定義は、私が指摘した図書館で開発されたアルゴリズムのような、より高速なアルゴリズムを終了します。

関連する問題