Main Content

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

blockLocationSet

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

R2020a 以降

説明

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

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

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 = [[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 オブジェクトは、ブロック化イメージ ファイルからのデータの読み取りや格納は行いません。

バージョン履歴

R2020a で導入

参考

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