Поместите данные в конкретный блок заблокированного изображения
Создайте заблокированное изображение, на которое можно записать данные. Формат заблокированного изображения задается в destination параметр. Чтобы записать в память, задайте пустую матрицу. Вы также должны задать размер изображения и размер блоков, в которые вы хотите уколоть изображение. Параметр начального значения зависит от формата, заданного в пункте назначения. Чтобы создать заблокированное изображение с возможностью записи, задайте 'Mode' параметр со значением 'w' для режима записи.
destination = []; imgsize = [5 7]; blocksize = [2 2]; initval = uint8(0); bim = blockedImage(destination,imgsize,blocksize,initval, "Mode", 'w');
Запись данных в указанные блоки в заблокированном изображении при помощи setBlock функция объекта. The blocksubs параметр задает координаты блока, в который вы хотите записать данные. The blockdata параметр задает данные для записи в указанный блок. Размер blockdata должен совпадать с размером блока.
blocksubs = [1 1];
blockdata = ones(2,2,"uint8");
setBlock(bim, blocksubs, blockdata)
Закройте изображение для записи.
Переключите заблокированное изображение в режим чтения путем установки параметра 'Mode' на '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
Создайте заблокированное изображение.
bim = blockedImage('tumor_091R.tif');Отобразите заблокированное изображение и нарисуйте круговой информация только для чтения на изображении.
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
Преобразуйте координаты информация только для чтения в пиксельный уровень.
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 свойство.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.