このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
setBlock
説明
例
ブロック化されたイメージへのデータの書き込みと読み直し
データを書き込むためのブロック化されたイメージを作成します。destination
パラメーターでブロック化されたイメージの形式を指定します。メモリに書き込むには、空行列を指定します。また、イメージのサイズと、そのイメージのチャンク先ブロックのサイズを指定しなければなりません。初期値パラメーターは、destination で指定した形式によって異なります。書き込み可能なブロック化されたイメージを作成するには、'Mode'
パラメーターの値を書き込みモードの 'w'
に指定します。
destination = []; imgsize = [5 7]; blocksize = [2 2]; initval = uint8(0); bim = blockedImage(destination,imgsize,blocksize,initval, "Mode", 'w');
オブジェクト関数 setBlock
を使用して、ブロック化されたイメージの指定されたブロックにデータを書き込みます。blocksubs
パラメーターは、データを書き込みたいブロックの座標を指定します。blockdata
パラメーターは、指定されたブロックに書き込むデータを指定します。ブロックデータのサイズは、ブロックのサイズと一致しなければなりません。
blocksubs = [1 1];
blockdata = ones(2,2,"uint8");
setBlock(bim, blocksubs, blockdata)
書き込みのためにイメージを閉じます。
「Mode」パラメーターを読み取り (read) の「r」に設定して、ブロック化されたイメージを読み取りモードに切り替えます。
bim.Mode = 'r'
bim = blockedImage with properties: Read only properties Source: " {5x7 uint8}..." Adapter: [1x1 images.blocked.InMemory] Size: [5 7] SizeInBlocks: [3 4] ClassUnderlying: "uint8" Settable properties BlockSize: [2 2]
個々のブロックをすべて収集する関数 gather
を使用して、完全なイメージを作成します。
fullImage = gather(bim);
コマンド ラインでブロック化されたイメージの詳細を表示します。
disp(fullImage)
1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ROI からのマスクの作成
ブロック化されたイメージを作成します。
bim = blockedImage('tumor_091R.tif');
ブロック化されたイメージを表示し、イメージ上に円 ROI を描画します。
h = bigimageshow(bim); hROI = drawcircle(gca, 'Radius', 470, 'Position', [1477 2284]);
マスクを作成する解像度レベルを指定します。
maskLevel = 3;
書き込み可能なブロック化されたイメージをメモリに作成します。
bmask = blockedImage([], [200 200], bim.Size(maskLevel,1:2), false, "Mode", "w");
マスクの開始点と終了点を指定します。
bmask.WorldStart = bim.WorldStart(maskLevel, 1:2); bmask.WorldEnd = bim.WorldEnd(maskLevel, 1:2);
ブロック数を表示します。
disp(bmask.SizeInBlocks);
1 1
ROI 座標をピクセル レベルに変換します。
roiPositionsRC = fliplr(hROI.Vertices); % x,y to row,column roiPosSub = world2sub(bmask, roiPositionsRC, "level", 1); for cSub = 1:bmask.SizeInBlocks(2) for rSub = 1:bmask.SizeInBlocks(1) blockSub = [rSub, cSub]; [pStart, pEnd] = blocksub2sub(bmask, blockSub, "Level", 1); % Create a grid encompassing all pixels in the block in X-Y order [xgrid,ygrid] = meshgrid(pStart(2):pEnd(2), pStart(1):pEnd(1)); % Create in/out mask for this block tileMask = inpolygon(xgrid, ygrid,... roiPosSub(:,2), roiPosSub(:,1)); % Write out the block setBlock(bmask, blockSub, tileMask); end end
ブロック化されたイメージを読み取りモードに切り替えます。
bmask.Mode = 'r';
マスクを表示します。
figure bigimageshow(bmask)
入力引数
bim
— ブロック化されたイメージ
blockedImage
オブジェクト
ブロック化されたイメージ。blockedImage
オブジェクトとして指定します。
blocksub
— ブロック添字ベクトル
整数値のベクトル
ブロック添字ベクトル。1 行 N 列の整数値のブロック添字ベクトルとして指定します。有効な要素の範囲は 1
から SizeInBlocks
プロパティの対応する要素までです。
例: [3, 2, 1]
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
blockdata
— データのブロック
数値配列
データのブロック。次元が BlockSize
と一致する数値配列として指定します。型は、ClassUnderlying
プロパティで指定された型に一致します。setBlock
は Size
プロパティに当てはまるようにエッジに沿って自動でブロックをトリミングします。
バージョン履歴
R2021a で導入
参考
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)