2017-04-21 2 views
2

2値画像のエロージョンは白い領域を減少させ、膨張はそれを増加させます。私はOpenCVを使ってカラー画像でも同じことを試み、同様の結果を得ました。私は、バイナリJPEG画像を腐食/拡張しようとしました。損失圧縮のために、画像は[0,5]および[250,255]の強度を有していた。私が見つけた結果は面白かったです。エロージョンにより、イメージは構造化要素内の最小値を検索して置換します。 Dilationは最大値を使用します。カラー画像のOpenCVエロージョンと膨張

カラー画像の場合、色はどのように小さく、または大きく見えるのですか?彼らは間接的に値を灰色に変換し、強度を見て、次にどれが大きいかを決定しますか?あるいは、彼らは3色の平均を使用していますか? 3つ目の可能性は、それらが3つの色(R、G、B)すべてで別々に浸食/膨張することです。どの方法が使われていますか?

答えて

1

各R、G、Bチャンネルは別々に処理されます。 manual(強調鉱山)から

関数が最大値をとる その上の画素近傍の形状を決定し、指定構造 要素を使用してソース画像を拡張... 関数はインプレースモードをサポートしています。拡張はいくつか適用することができる( 反復)。 マルチチャンネル画像の場合、各チャンネルは で処理されます。です。

2

これらの形態学的操作は、色がベクトル情報(3つの成分)を伝達し、より小さい/より大きく比較することができないため、カラー画像に対して不安定である。

一般的な実装では、カラープレーンを単独でトレッドします。これは、数学的正当な理由がないという欠点を有し、元の画像には存在しない色を導入する。

もう1つのオプションは可能ですが、使用していないと思われます。任意の1つの色を選択した場合、選択した色と最も近い/最も遠い色を選択することで拡大/縮小できます。

+0

HSV画像の値チャンネルで形態素操作を使用するのが最善の方法だと思います。 – Ashwin

+1

@Ashwin "best"は存在しません。これはアプリケーションに依存します。 –

+0

十分に公正です。それは理にかなっている。 – Ashwin