setBlock

Поместите данные в определенный блок большого изображения

Описание

пример

setBlock(bigimg,level,locationWorld,data) устанавливает пиксельные данные в блоке большого изображения bigimg это содержит координатный locationWorld на заданном уровне разрешения.

Примеры

свернуть все

Создайте bigimage. Это примеры использует модифицированную версию изображения "tumor_091.tif" от набора данных CAMELYON16. Оригинальное изображение является учебным изображением лимфатического узла, содержащего ткань опухоли. Оригинальное изображение имеет восемь уровней разрешения, и самый прекрасный уровень имеет разрешение 53760 61440. Модифицированное изображение имеет только три крупных уровня разрешения. Пространственная ссылка модифицированного изображения была настроена, чтобы осуществить сопоставимое соотношение сторон и указать функции на каждом уровне.

bim = bigimage('tumor_091R.tif');

Отобразите bigimage, затем создайте круговой ROI по отображенному изображению.

h = bigimageshow(bim);
hROI = drawcircle(gca,'Radius',470,'Position',[1477 2284]);

Выберите уровень, на котором можно создать writeable bigimage. Уровень 3 является самым грубым уровнем разрешения.

maskLevel = 3;

Получите пространственную ссылку и пиксельные степени от заданного уровня.

ref = bim.SpatialReferencing(maskLevel);
pixelExtent = [ref.PixelExtentInWorldX,ref.PixelExtentInWorldY];

Создайте writeable bigimage путем определения пространственной ссылки вместо данных изображения. Это большое изображение имеет один канал и тип данных logical.

bmask = bigimage(ref,1,'logical');

Цикл через все блоки в writeable большом изображении, чтобы создать рисунок маски. Для каждого блока, набор пиксельные значения как 1 TRUE) для пикселей в ROI и 0 ложь) для пикселей вне ROI.

for cStart = 1:bmask.BlockSize(2):ref.ImageSize(2)
    for rStart = 1:bmask.BlockSize(1):ref.ImageSize(1)

        % Get the center of top left pixel of this block in world units.
        xyStart = [cStart,rStart].*pixelExtent;

        % Get the block size. The |'BlockSize'| property represents the
        % size as a 2-element vector of the form [row,column]. Switch the
        % order of the elements so that the block size is represented as
        % [x,y].
        bsize = bmask.BlockSize
        bsize = fliplr(bsize);

        % Get the center of the bottom right pixel of this block in world
        % units.
        xyEnd = ([cStart,rStart] + (bsize-1)).*pixelExtent;

        % Use the |meshgrid| function to determine the (x,y) coordinates in
        % world units for all pixels in this block.
        [xgrid, ygrid] = meshgrid(xyStart(1):pixelExtent(1):xyEnd(1),...
            xyStart(2):pixelExtent(2):xyEnd(2));

        % Determine which pixels have coordinates inside the ROI.
        roiPositions = hROI.Vertices;
        blockMask = inpolygon(xgrid,ygrid, ...
            roiPositions(:,1),roiPositions(:,2));

        % Set the pixel values of the block.
        setBlock(bmask,1,xyStart,blockMask);
    end
end
bsize =

        1024        1024

Отобразите маску.

figure
bigimageshow(bmask)

Входные параметры

свернуть все

Большое изображение, заданное как bigimage объект.

Уровень разрешения, заданный как положительное целое число, которое меньше чем или равно количеству уровней разрешения bigimg.

Координата точки, заданной как 1 2 числовой вектор формы [x y]. Местоположение задано в мировых координатах, которые являются пиксельными местоположениями относительно уровня с самым высоким разрешением. Положение должно быть допустимым положением в bigimg.

Пиксельные данные, заданные как числовой массив совпадающего типа данных как большое изображение, bigimgclassUnderlying. Первые две размерности данных должны совпадать с размером блока в заданном level.

Советы

  • Создайте writeable bigimage при помощи синтаксиса, который не инициализирует данные изображения. Если вы создаете bigimage путем определения имени файла, имени каталога или имени переменной данных изображения, или при помощи apply функция, затем bigimage не writeable, и вы не можете использовать setBlock функция.

  • Если размер data меньше размера блока bigimg.BlockSize, затем setBlock заполняет данные значением по умолчанию, bigimg.UnloadedValue.

  • setBlock данные об обрезках для частичных блоков ребра.

Смотрите также

| |

Введенный в R2019b

Для просмотра документации необходимо авторизоваться на сайте