このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
readRelative
bigimageDatastore
オブジェクトの関数 readRelative
は将来のリリースで削除される予定です。代わりに、blockedImage
オブジェクトの関数 getBlock
を使用してください。詳細については、互換性の考慮事項を参照してください。
構文
説明
は、大きなイメージ データストア data
= readRelative(bigds
,sourceInfo
,blockOffset
)bigds
からオフセット blockOffset
でソース ブロック sourceInfo
に隣接するブロックを返します。
[
は、メタデータを含む抽出データに関する情報も、data
,info
] = readRelative(bigds
,sourceInfo
,blockOffset
)info
に返します。
例
大きな近傍イメージ ブロックの読み取り
CAMELYON16 データセットのイメージ "tumor_091.tif" の変更したバージョンを使用して bigimage
を作成します。元のイメージは、腫瘍組織が含まれるリンパ節の学習イメージです。元のイメージには 8 つの解像度レベルがあり、最も細かいレベルの解像度は 53760 x 61440 です。変更したイメージには、3 つの粗い解像度レベルのみが含まれています。変更したイメージの空間参照は、縦横比が一定に維持され、各レベルで特徴がレジストレーションされるように調整されています。
bim = bigimage('tumor_091R.tif');
最も細かい解像度レベルで大きなイメージのブロックを管理する bigimageDatastore
を作成します。
bimds = bigimageDatastore(bim,1);
データストアから最初のブロックを読み取ります。
[b,binfo] = read(bimds); b = b{1};
ブロックの左右にある近傍ブロックを読み取ります。左近傍ブロックは bim
の境界の外にあるため空です。
bLeft = readRelative(bimds,binfo,[0 -1]); bRight = readRelative(bimds,binfo,[0 1]);
ブロックをモンタージュとして表示します。左近傍ブロックは空であるため、黒く表示されます。
montage({bLeft,b,bRight},'Size',[1 3],'BorderSize',5,'BackgroundColor','b')
入力引数
bigds
— 大きなイメージ データストア
bigimageDatastore
オブジェクト
大きなイメージ データストア。bigimageDatastore
オブジェクトとして指定します。
sourceInfo
— ソース ブロックに関する情報
struct
ソース ブロックに関する情報。少なくとも以下のフィールドを含む struct として指定します。read
によって返される info
の値は sourceInfo
の有効な入力です。
フィールド名 | 説明 |
---|---|
Level | データの解像度レベル。正の整数として指定します。 |
ImageNumber | データを提供する大きなイメージのインデックス。正の整数として指定します。 |
BlockStartWorld | データの左上隅の (x,y) ワールド座標。1 行 2 列の数値ベクトルとして指定します。座標は、左上ピクセルの中心ではなく、ブロックの境界上の位置に対応しています。 |
blockOffset
— ブロックのオフセット
整数の 1 行 2 列のベクトル
ブロックのオフセット。ブロックの単位で整数の 1 行 2 列ベクトルとして指定します。2 つの要素は、ソース ブロックからの垂直オフセットと水平オフセットをそれぞれ指定します。
出力引数
data
— 出力データ
数値配列
出力データ。数値配列として返されます。リクエストされたブロックがソース イメージの境界の外にある場合、readRelative
は空のブロック []
を返します。
info
— 出力データに関する情報
struct
出力データに関する情報。以下のフィールドを含む struct として返されます。
フィールド名 | 説明 |
---|---|
Level | データの解像度レベル。正の整数の 1 行 ReadSize 列ベクトルとして指定します。 |
ImageNumber | データを提供する大きなイメージのインデックス。正の整数の 1 行 ReadSize 列ベクトルとして指定します。 |
BlockStartWorld | パディングを除く、データの左上ピクセルの中心の (x,y) 座標。ReadSize 行 2 列の数値ベクトルとして指定します。値はワールド座標の値です。 |
BlockEndWorld | パディングを除く、データの右下ピクセルの中心の (x,y) 座標。ReadSize 行 2 列の数値ベクトルとして指定します。値はワールド座標の値です。 |
DataStartWorld | パディングを含む、データの左上ピクセルの中心の (x,y) 座標。ReadSize 行 2 列の数値ベクトルとして指定します。値はワールド座標の値です。 |
DataEndWorld | パディングを含む、データの右下ピクセルの中心の (x,y) 座標。ReadSize 行 2 列の数値ベクトルとして指定します。値はワールド座標の値です。 |
ヒント
readRelative
はマスクを無視します。readRelative
では、大きなイメージ データストアのPadMethod
プロパティとBorderSize
プロパティが考慮されます。リクエストされたブロックが不完全で、
にbigds
.IncompleteBlocks'exclude'
の値がある場合、readRelative
は空のブロックを返します。
バージョン履歴
R2019b で導入R2023b: readRelative
は削除予定
bigimageDatastore
オブジェクトとこの関数は将来のリリースで削除される予定です。代わりに、blockedImage
オブジェクトの関数 getBlock
を使用してください。関数 getBlock
は、イメージの境界の外にある近傍ブロックの読み取りをサポートしていません。
コードを更新するには、まず、イメージ データを読み取るための blockedImage
オブジェクトを作成してから、データ ブロックを管理するための blockedImageDatastore
を作成します。次に、以下の手順に従い、相対位置を使用して近傍ブロックを読み取ります。
関数
read
を使用し、blockedImageDatastore
からブロックを読み取ってブロックのメタデータを返します。ブロックのメタデータ構造体の
Blocksub
プロパティおよびLevel
プロパティをそれぞれクエリし、添字と解像度レベルを取得します。近傍ブロックの相対オフセットを追加し、近傍ブロックの添字を取得します。データ ブロックが RGB イメージの場合、最後の要素の値が
0
である 3 要素ベクトルとしてオフセットを指定します。ブロック化されたイメージおよび近傍ブロックの添字を指定して関数
getBlock
を呼び出します。解像度レベルが1
以外の場合、名前と値の引数Level
を使用して解像度レベルも指定します。
非推奨の使用方法 | 推奨される代替案 |
---|---|
この例では、指定したブロックの右側にある近傍ブロックを bigIm = bigimage("tumor_091R.tif");
bigImds = bigimageDatastore(bigIm);
[block,info] = read(bigDS);
blockRightOffset = [0 1];
blockRight = readRelative(bigDS,info,blockRightOffset); | 以下は、 blockedIm = blockedImage("tumor_091R.tif");
blockedDS = blockedImageDatastore(blockedIm);
[block,info] = read(blockedDS);
blockSub = info.BlockSub;
blockRightOffset = [0 1 0];
blockRightSub = blockSub + blockRightOffset;
blockRight = getBlock(blockedIm,blockRightSub); |
この例では、解像度レベル bigIm = bigimage("tumor_091R.tif");
level = 2;
bigDS = bigimageDatastore(bigIm,level);
[block,info] = read(bigDS);
blockRightOffset = [0 1];
blockRight = readRelative(bigDS,info,blockRightOffset); | 以下は、 blockedIm = blockedImage("tumor_091R.tif");
level = 2;
blockedDS = blockedImageDatastore(blockedIm);
[block,info] = read(blockedDS);
blockSub = info.BlockSub;
blockRightOffset = [0 1 0];
blockRightSub = blockSub + blockRightOffset;
blockRight = getBlock(blockedIm,blockRightSub,Level=level); |
R2021a: 関数 readRelative
は非推奨
R2021a 以降、bigimage
オブジェクトのデータに作用する bigimageDatastore
オブジェクトとそのオブジェクト関数は非推奨になりました。代わりに、blockedImage
オブジェクトのデータに作用する blockedImageDatastore
オブジェクトとそのオブジェクト関数を使用してください。blockedImage
オブジェクトには、N 次元の処理に拡張できる、インターフェイスがシンプルである、非標準イメージ形式の読み書きをカスタムでサポートしている、といったいくつかの利点があります。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)