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: "    {5×7 uint8}↵"
            Adapter: [1×1 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
ブロック化されたイメージを作成します。
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)

入力引数
ブロック化されたイメージ。blockedImage オブジェクトとして指定します。
ブロック添字ベクトル。1 行 N 列の整数値のブロック添字ベクトルとして指定します。有効な要素の範囲は 1 から SizeInBlocks プロパティの対応する要素までです。
例: [3, 2, 1]
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
データのブロック。次元が BlockSize と一致する数値配列として指定します。型は、ClassUnderlying プロパティで指定された型に一致します。setBlock は Size プロパティに当てはまるようにエッジに沿って自動でブロックをトリミングします。
バージョン履歴
R2021a で導入
参考
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)