Main Content

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

blockLocationSet

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

説明

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

作成

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

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

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

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

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

説明

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

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

プロパティ

すべて展開する

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

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

データ型: double

ブロックの原点。n 行 P 列の数値行列として指定します。ここで、n は、blockLocationSet によって指定されたブロック数で、P はブロックの数です。各行で、ブロックの左上隅の [x y] 座標を指定します。

データ型: double

ブロック サイズ。[numrows, numcols,...] 形式の 1 行 N 列の正の整数のベクトルとして指定します。ブロック サイズは、blockLocationSet のすべてのブロックで同一です。N は、blockedImage オブジェクトの NumDimensions プロパティと一致します。

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

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

  • Levels を正の整数のベクトルとして指定した場合、各要素は blockedImageDatastore が対応する bLockedImage からブロックを読み取る解像度レベルを示します。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 = [[20 30 1]; [30 40 1]; [40 50 1]; [50 60 1]]
xyLocations = 4×3

    20    30     1
    30    40     1
    40    50     1
    50    60     1

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

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

bimds = blockedImageDatastore(bim,'BlockLocationSet',locationSet);

blockedImageDatastore から一度に 2 つのブロックを読み取ります。

bimds.ReadSize = 2;
while hasdata(bimds)
    blocks = read(bimds)
end
blocks=2×1 cell array
    {300×300×3 uint8}
    {300×300×3 uint8}

blocks=2×1 cell array
    {300×300×3 uint8}
    {300×300×3 uint8}

読み取ったブロックを表示します。

montage(blocks,'BorderSize',5,'BackgroundColor','b');

ヒント

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

参考

| | (Computer Vision Toolbox) | (Computer Vision Toolbox) | (Computer Vision Toolbox) |

R2020a で導入