Main Content

blockLocationSet

大きなイメージ内のブロック位置のリスト

R2020a 以降

説明

blockLocationSet オブジェクトは、セマンティック セグメンテーションとオブジェクト検出の学習ワークフローでクラス バランス調整のために使用されるブロックの位置を提供します。blockedImageDatastore オブジェクトと boxLabelDatastore オブジェクトはこれを使用し、データ読み取りのためのブロック位置を指定します。

作成

blockLocationSet オブジェクトは次の方法で作成できます。

  • selectBlockLocations — ブロック化されたイメージ全体から、またはブロック化されたイメージのマスクされた領域内で、ブロックを選択します。オプションで、ブロック同士のオーバーラップと間隔を指定します。

  • balancePixelLabels (Computer Vision Toolbox) — ピクセル ラベル データのあるラベル付きのブロック化されたイメージからブロックを選択します (Computer Vision Toolbox™ が必要)。セマンティック セグメンテーション ワークフローで、クラス バランス調整を行うには、この関数を使用します。

  • balanceBoxLabels (Computer Vision Toolbox) — 境界ボックス データのあるラベル付きのブロック化されたイメージからブロックを選択します (Computer Vision Toolbox が必要)。オブジェクト検出ワークフローで、クラス バランス調整を行うには、この関数を使用します。

  • mergeBlockLocationSets — 2 つのブロック位置のセットを 1 つのブロック位置のセットにマージします。異なる条件を使用してイメージのセットから選択されたブロック位置を組み合わせる場合や、2 つの異なるイメージのセットから選択されたブロック位置を組み合わせる場合に、この関数を使用します。

  • ここで説明する関数 blockLocationSet。ブロック化されたイメージ内のブロックの座標がわかっている場合には、この関数を使用します。

説明

locationSet = blockLocationSet(ImageNumber,BlockOrigin,BlockSize) は、ImageNumber でインデックス付けされたブロック化イメージ ファイルのセットから読み取るブロックの位置 BlockOrigin とサイズ BlockSize を格納する blockLocationSet オブジェクトを作成します。

locationSet = blockLocationSet(ImageNumber,BlockOrigin,BlockSize,Levels) は、ブロック化されたイメージからブロックを読み取る解像度レベルも指定します。

プロパティ

すべて展開する

読み取ったブロックが含まれているイメージ ファイルのイメージ番号。n 行 1 列の正の整数ベクトルとして指定します。ここで、n はブロックの数です。値は、blockedImageDatastore 内のブロック化されたイメージの数を超えることはできません。

例: [1 1 1 2] は、blockedImageDatastore が合計 4 つのブロックを読み取るよう指定します。最初の 3 つのブロックはデータストアの 1 番目の blockedImage から、4 番目のブロックは 2 番目の blockedImage から読み取ります。

データ型: double

ブロックの原点。n 行 d 列の数値行列として指定します。ここで、n はブロックの数です。d はブロックの次元で、blockedImage オブジェクトの次元数以下でなければなりません。各行で、ブロックの左上隅の [x y ... dimD] 座標を指定します。

例: BlockOrigin=[200 100] は、左上隅が (x, y) 座標 (200, 100) にくるブロックを指定します。

データ型: double

ブロック サイズ。1 行 d 列の正の整数のベクトルとして指定します。d はブロックの次元で、blockedImage オブジェクトの次元数以下でなければなりません。ブロック サイズは、blockLocationSet のすべてのブロックで同一です。

blockedImageDatastore の各 blockedImage の解像度レベル。正の整数または正の整数のベクトルとして指定します。

  • Levels を正の整数スカラーとして指定した場合、blockedImageDatastore はすべてのブロックを同一の解像度レベルで読み取ります。

  • Levels を正の整数ベクトルとして指定した場合、各要素は、対応する blockedImage から blockedImageDatastore がブロックを読み取る解像度レベルを示します。Levels の長さは、blockedImageDatastoreblockedImage オブジェクトの数と等しくなければなりません。

例: [1 1 2 2 1] は、5 つの blockedImage オブジェクトをもつ blockedImageDatastore が、1 番目の解像度レベルで 1 番目、2 番目、および 5 番目の blockedImage オブジェクトからブロックを読み取り、2 番目の解像度レベルで 3 番目および 4 番目の blockedImage オブジェクトからブロックを読み取るよう指定します。

すべて折りたたむ

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

bim = blockedImage("tumor_091R.tif");
bigimageshow(bim)

すべてのブロックが同じイメージからのブロックのため、すべてのブロックで imageNumber は 1 となります。解像度レベルには、最も細かい解像度を選択します。ブロック位置を x,y 座標で指定します。

imageNumber = [1, 1, 1, 1]';
levels = 1;
xyLocations = [2000 3000; 2000 3500; 3000 3000; 3000 3500]
xyLocations = 4×2

        2000        3000
        2000        3500
        3000        3000
        3000        3500

blockSize = [300 300];
locationSet = blockLocationSet(imageNumber,xyLocations,blockSize,levels);

設定したブロック位置を使用して、指定されたブロックのみを含む blockedImageDatastore を作成します。

bimds = blockedImageDatastore(bim,BlockLocationSet=locationSet);

blockedImageDatastore から一度に 2 つのブロックを読み取り、そのブロックをモンタージュとして表示します。

bimds.ReadSize = 2;
while hasdata(bimds)
    blocks = read(bimds);
    figure
    montage(blocks,BorderSize=5,BackgroundColor="b");
end

ヒント

  • blockLocationSet オブジェクトは、ブロック化イメージ ファイルからのデータの読み取りや格納は行いません。

バージョン履歴

R2020a で導入

すべて展開する