ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

imtophat

トップ ハット フィルター処理

構文

IM2 = imtophat(IM,SE)
IM2 = imtophat(IM,NHOOD)
gpuarrayIM2 = imtophat(gpuarrayIM,___)

説明

IM2 = imtophat(IM,SE) は、グレースケール イメージまたはバイナリ入力イメージ IM にモルフォロジーなトップ ハット フィルター処理を実行します。トップ ハット フィルター処理を実行するとイメージのモルフォロジーなオープン処理が計算され (imopen を使用)、次に元のイメージから結果が抽出されます。imtophat は構造化要素 SE を使用します。ここで、SEstrel によって出力されます。SE は、1 つの構造化要素オブジェクトで、複数の構造化要素オブジェクトを含む配列ではありません。

IM2 = imtophat(IM,NHOOD) のとき、NHOOD は、構造化要素のサイズと形状を設定する 0 と 1 の要素のみで作成されている配列です。これは、imptophat(IM,strel(NHOOD)) と等価です。

gpuarrayIM2 = imtophat(gpuarrayIM,___) は GPU で処理を実行します。NHOOD は、NHOOD が構造化要素近傍を指定する 01 からなる配列の場合は、strel(NHOOD) で指定される構造化要素です。NHOODgpuArray の場合は、strel(gather(NHOOD)) で構造化要素近傍を指定します。

コード生成 サポート: あり。

MATLAB Function ブロック サポート: あり。

クラス サポート

IM は、数値または論理値で非スパースでなければなりません。出力イメージ IM2 は、入力イメージと同じクラスになります。入力がバイナリ イメージ (logical) の場合、構造化要素はフラットでなければなりません。

gpuarrayIMuint8 型または logical 型の gpuArray でなければなりません。gpuArray と併用する場合、構造化要素はフラットかつ 2 次元でなければなりません。

出力は入力と同じクラスになります。

すべて折りたたむ

トップ ハット フィルター処理は、背景が暗い場合に、不均質な照度を補正するために使います。次の例は、円盤型の構造化要素と共にトップ ハット フィルター処理を行い、あるイメージから不均一なバックグラウンド輝度を除去します。

イメージを読み取り、それを表示します。

original = imread('rice.png');
figure, imshow(original)

構造化要素を作成します。

se = strel('disk',12);

トップ ハット フィルター処理を実行して、イメージを表示します。

tophatFiltered = imtophat(original,se);
figure, imshow(tophatFiltered)

imadjust を使用して、結果の可視状態を改良します。

contrastAdjusted = imadjust(tophatFiltered);
figure, imshow(contrastAdjusted)

トップ ハット フィルター処理は、背景が暗い場合に、不均質な照度を補正するために使います。次の例は、円盤型の構造化要素と共にトップ ハット フィルター処理を行い、あるイメージから不均一なバックグラウンド輝度を除去します。

イメージを読み取り、それを表示します。

original = imread('rice.png');
figure, imshow(original)

構造化要素を作成します。

se = strel('disk',12);

トップ ハット フィルター処理を実行して、イメージを表示します。この例において、イメージが関数 imtophat に渡される前に、どのようにして関数 gpuArray に渡されるかに注意してください。

tophatFiltered = imtophat(gpuArray(original),se);
figure, imshow(tophatFiltered)

imadjust を使用して、結果の可視状態を改良します。関数 gather を使用して、gpuArray の内容が GPU から取得されます。

contrastAdjusted = imadjust(gather(tophatFiltered));
figure, imshow(contrastAdjusted)

詳細

すべて折りたたむ

コード生成

この関数では MATLAB® Coder™ を使用した C コードの生成がサポートされています。汎用の MATLAB Host Computer ターゲット プラットフォームを選択した場合、プリコンパイルされたプラットフォーム固有の共有ライブラリを使用するコードが、この関数によって生成されます。共有ライブラリを使用するとパフォーマンスの最適化は維持されますが、コードを生成できるターゲット プラットフォームが限定されます。詳細は、「Image Processing Toolbox のコード生成について」を参照してください。

コードを生成する際、イメージ入力引数 IM は 2 次元または 3 次元で、構造化要素入力引数 SE はコンパイル時の定数でなければなりません。

MATLAB Function ブロック

この関数は Simulink の MATLAB Function ブロックで使用できます。

R2006a より前に導入

この情報は役に立ちましたか?