Main Content

setBlock

Poner los datos en un bloque específico de imagen grande

Descripción

ejemplo

setBlock(bigimg,level,locationWorld,data) establece los datos de píxeles en el bloque de imagen grande que contiene coordenadas en el nivel de resolución especificado.bigimglocationWorld

Ejemplos

contraer todo

Cree un archivo .bigimage Este ejemplo utiliza una versión modificada de la imagen "tumor_091.tif" del archivo .Conjunto de datos CAMELYON16 La imagen original es una imagen de entrenamiento de un ganglio linfático que contiene tejido tumoral. La imagen original tiene ocho niveles de resolución, y el nivel más alto tiene resolución 53760-por-61440. La imagen modificada tiene solo tres niveles de resolución gruesa. La referencia espacial de la imagen modificada se ha ajustado para aplicar una relación de aspecto coherente y registrar entidades en cada nivel.

bim = bigimage('tumor_091R.tif'); 

Muestre el , y luego cree un ROI de círculo sobre la imagen mostrada.bigimage

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

Elija el nivel en el que desea crear un archivo .bigimage El nivel 3 es el nivel de resolución más grueso.

maskLevel = 3; 

Obtenga las extensiones de píxel y referencia espacial del nivel especificado.

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

Cree un objeto de escritura especificando la referencia espacial en lugar de los datos de imagen.bigimage Esta imagen grande tiene un canal y un tipo de datos.logical

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

Recorre todos los bloques de la imagen grande grabable para crear una imagen de máscara. Para cada bloque, establezca los valores de píxel como ( ) para píxeles dentro del ROI y ( ) para píxeles fuera del ROI.1true0false

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  

Muestre la máscara.

figure bigimageshow(bmask) 

Argumentos de entrada

contraer todo

Imagen grande, especificada como un objeto.bigimage

Nivel de resolución, especificado como un entero positivo que es menor o igual que el número de niveles de resolución de .bigimg

Coordenada de un punto, especificado como un vector numérico 1 por 2 del formulario.[x y] La ubicación se especifica en las coordenadas mundiales, que son las ubicaciones de píxeles en relación con el nivel de resolución más alto. La posición debe ser una posición válida dentro de .bigimg

Datos de píxeles, especificados como una matriz numérica del mismo tipo de datos que la imagen grande, bigimg.ClassUnderlying. Las dos primeras dimensiones de los datos deben coincidir con el tamaño de bloque en el archivo .level

Sugerencias

  • Cree un objeto de escritura mediante una sintaxis que no inicialice los datos de imagen.bigimage Si crea un especificando el nombre de archivo, el nombre de directorio o el nombre de variable de los datos de imagen, o mediante la función, el no se puede escribir y no se puede utilizar la función.bigimageapplybigimagesetBlock

  • Si el tamaño de es menor que el tamaño del bloquedata bigimg.BlockSize, a continuación, rellena los datos con el valor predeterminado,setBlock bigimg.UnloadedValue.

  • recorta los datos de los bloques de aristaparciales.setBlock

Consulte también

| |

Introducido en R2019b