Source: https://la.mathworks.com/help/images/ref/bigimagedatastore.html
Timestamp: 2020-07-11 05:21:26+00:00

Document:
Almacén de datos para gestionar bloques de big image data - MATLAB - MathWorks América Latina
Crear almacén de datos de imagen grande y especificar el tamaño del bloque
Crear big image Datastore y Especificar máscara
Almacén de datos para gestionar bloques de big image data
A administra una colección de bloques de imagen que pertenecen a uno o varios objetos.bigimageDatastorebigimage A es análogo a un , que administra una colección de imágenes no relacionadas.bigimageDatastoreimageDatastore
bigds = bigimageDatastore(Images,Levels) crea un almacén de datos que administra una colección de bloques de imagen que pertenecen a uno o más objetos,bigimage Images, en los niveles de resolución especificados, Levels.
bigds = bigimageDatastore(Images,Levels,Name,Value) también utiliza pares nombre-valor para establecer uno o más de los BlockSize, BlockOffsets, Masks, InclusionThresholdO IncompleteBlocks Propiedades. Puede especificar varios pares nombre-valor. Incluya cada nombre de propiedad entre comillas.
Por ejemplo, crea un almacén de datos que lee bloques de tamaño 128 por 128 en el nivel de resolución 3 a partir de bloques de borde parciales de imagen grande y cero pads.bigimageDatastore(bigimg,3,'BlockSize',[128 128],'IncompleteBlocks','pad')bigimg
Images — Imágenes grandes
-vector de elementos de objetosbbigimage
Imágenes grandes que proporcionan bloques para el , especificado como un vector -elemento de objetos.bigimageDatastorebbigimage Para leer diferentes niveles de resolución de la misma imagen grande, especifique la misma imagen varias veces en el vector.
Levels — Nivel de resolución
entero positivo | -vector de elementos de enteros positivosb
Nivel de resolución de bloques de cada imagen grande en Images, especificado como un escalar entero positivo o un vector -elemento de enteros positivos.b Si especifica un valor escalar, todas las imágenes grandes suministran bloques al mismo nivel de resolución.bigimageDatastore
BlockSize — Tamaño del bloque
Vector 1 por 2 de enteros positivos
Tamaño de bloque de los datos de lectura, especificado como un vector 1 por 2 de enteros positivos del formulario.[numrows numcols] El valor predeterminado es igual a la propiedad del primer objeto enBlockSizebigimage Images en el primer nivel de resolución en Levels.
Masks — Imágenes de máscara
objeto escalarbigimage | -vector de elementos de objetosbbigimage
Imágenes de máscara, especificadas como un objeto escalar o un vector -elemento de objetos con una clase subyacente de tipo de datos.bigimagebbigimagelogical La propiedad determina qué bloques se incluirán al llamar a .Masksread De forma predeterminada, lee todos los bloques.bigimageDatastore
InclusionThreshold — Umbral de inclusión para bloques de máscaras
escalar numérico | -vector numérico de elementosb
Umbral de inclusión para bloques de máscara, especificado como un vector numérico escalar o -elemento con valores en el intervalo [0, 1].b El umbral de inclusión especifica el porcentaje mínimo de píxeles distintos de cero ( ) en un bloque de máscara necesario para leer el bloque de imagen.true
Cuando el umbral de inclusión es , el lee un bloque cuando al menos un píxel en el bloque de máscara correspondiente es distinto de cero.0bigimageDatastore
Cuando el umbral de inclusión es , el lee un bloque cuando todos los píxeles del bloque de máscara son distintos de cero.1bigimageDatastore
BorderSize — Tamaño de la frontera
[0 0] (predeterminado) | Vector 1 por 2 de enteros no negativos
Tamaño del borde, especificado como un vector 1 por 2 de enteros no negativos del formulario.[m n] La función agrega filas por encima y por debajo de cada bloque y columnas a la izquierda y a la derecha de cada bloque con datos de los bloques vecinos.mn Para los bloques que se encuentran en el borde de una imagen, los datos se rellenan de acuerdo con IncompleteBlocks. De forma predeterminada, no se agrega ningún borde a los bloques.
BlockOffsets — Desplazamientos de bloques
Desplazamientos de bloque, especificados como vector 1 por 2 de enteros positivos de la forma.[numrows numcols]
El valor predeterminado es igual a BlockSize. Utilice un valor menor para obtener bloques superpuestos durante las llamadas a .read Utilice un valor mayor para agregar un espacio entre bloques.
IncompleteBlocks — Método para manejar bloques de borde
"same" (predeterminado) | "exclude" | "pad"
Método para manejar bloques de borde que son más pequeños que BlockSize, especificado como uno de estos valores.
Devuelve datos del mismo tamaño que el bloque perimetral.
No incluya bloques de borde en las llamadas a .read
Pad bloques incompletos al mismo tamaño que el uso del método de pad especificado porBlockSize PadMethod.
PadMethod — Método Pad
0 (predeterminado) | escalar numérico | 'replicate' | 'symmetric'
Método Pad de bloques de borde incompletos, especificado como uno de estos valores. De forma predeterminada, los bloques incompletos de cero pads.bigimageDatastore
ReadSize — Número de bloques a devolver
Número de bloques que se devolverán en cada llamada a , especificado como un entero positivo.read
partition ParticiónbigimageDatastore
read Leer datos debigimageDatastore
readRelative Leer bloque vecino de usar la posición relativabigimageDatastore
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.
Mostrar el tamaño de bloque predeterminado de la en cada nivel de resolución.bigimage El tamaño de bloque es un vector de 2 elementos de la forma [ , ].numrowsnumcols
t = table((1:3)',bim.BlockSize,'VariableNames',["Level" "Block Size"]); disp(t)
Level     Block Size      _____    ____________        1      1024    1024       2      1024    1024       3      1024    1024
Visualice la función mediante la función.bigimagebigimageshow
Cree un nivel de resolución 1.bigimageDatastore Especifique un tamaño de bloque no predeterminado. Establezca el almacén de datos para que lea cuatro bloques a la vez.
bimds =    bigimageDatastore with properties:                ReadSize: 1             BorderSize: [0 0]              PadMethod: 0     InclusionThreshold: 0.5000                  Masks: [0x0 bigimage]                 Images: [1x1 bigimage]                 Levels: 2              BlockSize: [512 512]           BlockOffsets: [512 512]       IncompleteBlocks: 'same'
Lea un lote de datos del almacén de datos. Observe que el tercer bloque es un bloque de borde parcial y tiene un tamaño menor que los bloques interiores. Muestre los parches de imagen devueltos como un montaje. El montaje muestra el tercer bloque con un borde más grueso porque el ancho del bloque es menor que el ancho de los bloques completos.
Lea el siguiente lote de datos del almacén de datos y muestre las revisiones de imagen devueltas como un montaje. El montaje muestra bloques parciales con un borde más grueso porque las dimensiones de los bloques son más pequeñas que las dimensiones del bloque completo.
Lea el último lote de datos del almacén de datos. La operación de lectura devuelve un lote parcial que contiene la única revisión restante. Muestre el parche.
Cree un archivo .bigimage Este ejemplo utiliza una versión modificada de la imagen "tumor_091.tif" de la 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.
Cree una máscara en el nivel de resolución más grueso, conservando la información de referencia espacial original.
clevel = bim.CoarsestResolutionLevel; imcoarse = getFullLevel(bim,clevel); stainMask = ~imbinarize(rgb2gray(imcoarse)); bmask = bigimage(stainMask,'SpatialReferencing',bim.SpatialReferencing(clevel));
Cree un a partir de datos de imagen en el nivel de resolución más fino.bigimageDatastore Especifique la propiedad para que el almacén de datos lea parches que estén al menos un 75% dentro del ROI definido por la máscara.InclusionThreshold0.75
bimds = bigimageDatastore(bim,1,'BlockSize',[256 256], ...     'Masks',bmask,'InclusionThreshold',0.75); bimds.ReadSize = 4;
Para obtener una vista previa de los parches leídos por el almacén de datos, muestre la máscara sobre el original con el mismo tamaño de bloque y umbral de inclusión.bigimage La superposición resalta en verde los parches que están al menos un 75% dentro del ROI definido por la máscara.
Lea el primer lote de datos del almacén de datos y muestre las revisiones de imagen devueltas como un montaje. El contenido de estos parches coincide con los bloques verdes de la superposición.
blocks = read(bimds); montage(blocks,'Size',[1 bimds.ReadSize],'BorderSize',5,'BackgroundColor','k');
Extraer muestras de entrenamiento de Big Image
Clasificación de aprendizaje profundo de imágenes grandes de multiresolución

References: resolución 
 resolución 
 resolución 
 resolución

 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución