Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

showmask

指定した包含しきい値でのマスク オーバーレイの表示

説明

showmask(b,mask) は、マスク maskbigimageshow オブジェクト b に表示されるブロック化されたイメージ上にオーバーレイとして表示します。このオーバーレイは、オブジェクト関数 blockedImage apply が指定されたマスクで処理したブロックを表示します。mask は、表示されているイメージと同じサイズのブロック化された 2 次元イメージ オブジェクトです。mask に複数の解像度レベルがある場合、bigimageshow は最も細かいレベルを使用します。

  • bigimageshow は、非ゼロ ピクセルの割合が最小値 (既定では 50%) を超えるマスクのブロックを緑色の色調で表示します。これらのブロックは関心領域と見なされ、blockedImage オブジェクトのオブジェクト関数 apply による処理対象として選択されます。

  • bigimageshow は、非ゼロ ピクセルの割合が最小値を下回るマスクのブロックを赤色の色調で表示します。これらのブロックは背景と見なされ、オブジェクト関数 apply で処理されません。

showmask(b,mask,level) は、ブロック化されたイメージ データの指定された解像度レベルで bigimageshow オブジェクト b にマスクを重ね合わせます。

showmask(___,Name,Value) は、名前と値のペアの引数を使用してマスク ブロックの外観を変更します。

すべて折りたたむ

サンプル イメージ tumor_091R.tif から、ブロック化されたイメージを作成します。このサンプル イメージは、CAMELYON16 データ セットの腫瘍組織が含まれるリンパ節の学習イメージです。このイメージは、3 つの粗い解像度レベルが含まれ、縦横比が一定に維持され、各レベルで特徴がレジストレーションされるように調整されています。

bim = blockedImage('tumor_091R.tif');

最も細かい解像度レベルでブロック化されたイメージ全体を、ブロック境界のグリッドと共に表示します。

bshow = bigimageshow(bim,'ResolutionLevel','fine', ...
    'GridVisible','on','GridLevel',1);

最も粗い解像度レベルのマスクを作成します。

まず、最も粗い解像度レベルの単一解像度イメージを作成します。関数 gather は既定で最も粗い解像度レベルからデータを取得します。

imcoarse = gather(bim);

粗いイメージをグレースケールに変換します。

graycoarse = rgb2gray(imcoarse);

グレースケール イメージを 2 値化します。2 値化したイメージでは、対象オブジェクトは黒に、背景は白になります。

bwcoarse = imbinarize(graycoarse);

2 値化したイメージの補数を取ります。結果のマスクは、対象オブジェクトは白になり、背景は黒になる規則に従います。

mask = imcomplement(bwcoarse);

マスクを含むブロック化されたイメージを作成します。

元のブロック化されたイメージと同じ空間参照を使用します。最も粗い解像度レベルを決定し、そのレベルの最初の 2 つの次元におけるブロック化されたイメージの空間参照情報を取得します。

coarsestLevel = bim.NumLevels;
originalWorldStartCoarsest = bim.WorldStart(coarsestLevel,1:2);
originalWorldEndCoarsest = bim.WorldEnd(coarsestLevel,1:2);

ブロック化されたイメージをマスク用に作成します。

bmask = blockedImage(mask,'WorldStart',originalWorldStartCoarsest, ...
   'WorldEnd',originalWorldEndCoarsest);

マスク イメージを表示します。

figure
bigimageshow(bmask)

関数 showmask を使用し、元のブロック化されたイメージの表示にマスクを重ね合わせます。非ゼロ マスク ピクセルを少なくとも 1 つ含むすべてのブロックを強調表示するために、包含しきい値として 0 を指定します。

showmask(bshow,bmask,'InclusionThreshold',0)

入力引数

すべて折りたたむ

ブロック化されたイメージ データを表示する bigimageshow オブジェクト。bigimageshow オブジェクトとして指定します。bigimageshow オブジェクトの CData プロパティは、表示されているブロック化されたイメージ データを指定します。

マスク。ClassUnderlying プロパティの値が logical である単一解像度の blockedImage オブジェクトとして指定します。マスクの空間範囲は、表示解像度レベルでブロック化されたイメージ データと同じでなければなりません。

ブロック化されたイメージ データを表示する解像度レベル。正の整数として指定します。

名前と値の引数

例: showmask(b,mask,'InclusionThreshold',0.4)

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

マスクの透明度。[0, 1] の範囲のスカラー値として指定します。1 の値はマスクが完全に不透明であることを意味し、0 の値はマスクが完全に透明であることを意味します。

関数 apply で使用するブロック サイズ。[numrows numcols] 形式の正の整数の 1 行 2 列ベクトルとして指定します。既定値は、bblockedimage オブジェクトの BlockSize プロパティに等しくなります。

包含しきい値。[0, 1] の範囲の数値として指定します。包含しきい値は、マスク ブロックを関心領域と見なすために必要な、マスク ブロック内の非ゼロ ピクセルの最小割合を示します。

  • 包含しきい値が 0 の場合、マスク ブロック内の少なくとも 1 つのピクセルが非ゼロのときに関数 showmask はマスク ブロックを表示します。

  • 包含しきい値が 1 の場合、マスク ブロック内のすべてのピクセルが非ゼロのときのみ、関数 showmask はマスク ブロックを表示します。

ヒント

  • showmask をはじめて呼び出した場合、bigimageshow は、表示された blockedImage の最も細かいレベルで各ブロックのゼロ マスク ピクセルに対する非ゼロ マスク ピクセルの比率を計算します。この計算の完了に時間がかかるため、マスクの表示に遅延が生じる可能性があります。それ以降に showmask を呼び出す場合、この関数は、計算した包含値を再利用し、表示されたマスクをより迅速に更新します。

バージョン履歴

R2019b で導入