Изображение сделано из дискретных блоков
blockedImage
объект является изображением, сделанным из дискретных блоков. Используйте блокированные изображения, когда изображение или объем будут слишком большими, чтобы поместиться в память. С блокированным изображением можно выполнить обработку, не заканчиваясь память.
blockedImage
Только для чтения
Объектыbim = blockedImage(
создает source
)blockedImage
объект из заданного источника. Источник может быть массивом в оперативной памяти или именем файла или папкой с данными изображения.
bims = blockedImage(
создает массив sources
)blockedImage
объекты от многочисленных источников. Источник может быть набором файлов или папок с данными изображения. Длина bims
равно количеству источников в sources
.
___ = blockedImage(___,
создает Name,Value
)blockedImage
объект, с помощью аргументов name-value, чтобы установить свойства объектов.
blockedImage
Объектwbim = blockedImage(
создает writeable destination
,size
,blockSize
,initialValue
,'Mode','w')blockedImage
объект в один или несколько уровней разрешения. destination
задает местоположение перезаписываемых данных. size
указывает на размер изображения на каждом уровне разрешения. initialValue
указывает на начальное значение для каждого элемента массива.
source
— Источник данных изображенияИсточник данных изображения в виде числового массива, категориального массива, или массива структур, или вектора символов или строкового скаляра, задающего имя файла или папку.
Блокированные изображения поддерживают эти форматы файлов:
Один файл TIFF. Если файл содержит Директории Файла повторного изображения (IFDs), blockedImage
возразите обрабатывает IFDs как несколько уровней разрешения.
Любой файл изображения, который может быть считан imread
.
Любой источник, созданный адаптерами, включенными с тулбоксом, перечисленным в Adapter
.
sources
— Источники данных изображенияFileSet
объектИсточники данных изображения в виде массива ячеек из символьных векторов, массива строк или FileSet
объект.
destination
— Местоположение, чтобы поместить writeable данные[]
| вектор символов | строковый скалярМестоположение, чтобы поместить перезаписываемые данные в виде вектора символов или строкового скаляра.
Целевой тип | 'imageFormat' |
---|---|
Имя папки (без расширения файла) |
|
Имя файла с TIF или расширением файла TIFF |
|
Имя файла с расширением файла H5 |
|
[] |
|
Чтобы задать пользовательский адаптер для других выходных форматов, используйте Adapter
свойство.
size
— Размер изображения на каждом уровне разрешенияРазмер изображения на каждом уровне разрешения в виде L-by-N матрица положительных целых чисел, где L является количеством уровней разрешения и N, является количеством размерностей изображения. blockedImage
возражайте всегда видам size
в порядке убывания количеством пикселей, независимо от как Source
хранит уровни.
blockSize
— Размер блоковРазмер блоков в виде L-by-N матрица положительных целых чисел, где L является количеством уровней разрешения и N, является количеством размерностей.
Если изображение имеет несколько уровней разрешения, то можно задать blockSize
как 1 N вектором, чтобы использовать тот же размер блока для всех уровней разрешения.
Пример: [64 128]
задает размер блока 64 128 пикселей для одного изображения разрешения
Пример: [128 128; 64 64; 32 32]
задает три различных размера блока для трех уровней разрешения
initialValue
— Значение элемента по умолчанию для разгруженных блоковПиксельное значение по умолчанию для разгруженных блоков в виде одного из этих значений. Блокированное изображение использует это значение, чтобы заполнить блоки, которые не имеют данных в базовом источнике.
Числовой скаляр. Тип данных initialValue
задает значение ClassUnderlying
свойство. Значение по умолчанию 0
.
категориальный скаляр. Значением по умолчанию является <undefined>
.
Скаляр struct с теми же именами полей как данные. Значением по умолчанию является <undefined>
.
Adapter
— Считайте и запишите интерфейс для блокированного объекта изображенияInMemory
возразите | MATBlocks
возразите | PNGBlocks
возразите | TIFF
объект |...Считайте и запишите интерфейс для блокированного объекта изображения в виде одного из этих объектов адаптера.
Адаптер | Описание |
---|---|
BINBlocks | Сохраните каждый блок как двоичный файл в папке |
GenericImage
| Сохраните блоки в одном изображении |
GenericImageBlocks | Сохраните каждый блок как файл изображения в папке |
H5 | Сохраните блоки в одном изображении HDF5 |
H5Blocks | Сохраните каждый блок как файл HDF5 в папке |
InMemory | Сохраните блоки в переменной в оперативной памяти |
JPEGBlocks | Сохраните каждый блок как файл JPEG в папке |
MATBlocks | Сохраните каждый блок как файл MAT в папке |
PNGBlocks | Сохраните каждый блок как файл PNG в папке |
TIFF | Сохраните блоки в одном файле TIFF |
Можно также создать собственный адаптер с помощью images.blocked.Adapter
класс.
AlternateFileSystemRoots
— Альтернативный путь к файловой системеАльтернативный путь к файловой системе для файлов, заданных в источнике в виде массива строк, содержащего одну или несколько строк. Каждая строка задает набор эквивалентных корневых путей.
Пример: ["Z:\datasets", "/mynetwork/datasets"]
Типы данных: char |
string
| cell
BlockSize
— Размер блоковРазмер блоков в виде L-by-N матрица положительных целых чисел, где L является количеством уровней разрешения и N, является количеством размерностей. BlockSize
служит размером по умолчанию данных, которые загружаются в оперативную память в любое время для использования. Это - самая маленькая единица информации, которой можно управлять с blockedImage
интерфейс. Если вы задаете BlockSize
с меньше, чем размерностями N, blockedImage
заполняет изображение элементами от Size
свойство.
Вы не можете задать это свойство, когда вы задаете Mode
как 'w'
.
Типы данных: double
ClassUnderlying
— Тип пиксельных данныхЭто свойство доступно только для чтения.
Пиксельные данные вводят в виде массива ячеек из символьных векторов, массива строк, массива структур или категориального массива, с элементами L. L является количеством уровней разрешения. Каждым элементом в массиве является тип данных пикселя от уровня соответствующего постановления. Значения: "logical"
int8
uint8
int16
uint16
int32
uint32
единственный
, и "double"
.
Типы данных: char |
string
InitialValue
— Значение элемента по умолчанию для разгруженных блоковcategorical
скаляр | struct
Это свойство доступно только для чтения.
Значение элемента по умолчанию для разгруженных блоков в виде числового скаляра типа задано ClassUnderlying
, categorical
значение для категориальных изображений или struct
. blockedImage
возразите использует это значение, чтобы заполнить блоки, которые не имеют данных в базовом источнике. Значение по умолчанию варьируется типом данных: 0
для числовых типов, <undefined>
для категориального, и скалярный struct
.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| char
| categorical
| struct
IOBlockSize
— Размер блока ввода-вывода источника изображенияЭто свойство доступно только для чтения.
Размер блока ввода-вывода источника изображения в виде L-by-N матрица положительных целых чисел, где L является количеством уровней разрешения и N, является количеством размерностей. IOBlockSize
размер базового размера блока ввода-вывода использование адаптера, чтобы читать из источника изображения. Это представляет самую маленькую единицу информации, которая может быть записана или считана. Это свойство только для чтения отражает формат источника основного изображения.
Примечание
Можно установить BlockSize
к любому значению. blockedImage
объект делает соответствующее чтение, обрезку, сшивание и кэширование исходных блоков ввода-вывода, чтобы гарантировать эффективный ввод-вывод.
Типы данных: double
Mode
— Текущий режим чтения или режим записи'r'
(значение по умолчанию) | 'w'
Текущий режим чтения или режим записи объекта в виде 'r'
для режима чтения и 'w'
для режима записи.
Можно только установить Mode
к 'w'
когда вы создаете объект. Можно изменить значение Mode
от 'w'
к 'r'
, в которой точке никакие дальнейшие записи не возможны. Вы не можете изменить Mode
от 'r'
к 'w'
.
При открытии blockedImage
в режиме записи необходимо также задать значения для ImageSize
, BlockSize
, и InitialValue
свойства.
Типы данных: char
NumDimensions
— Количество размерностей в изображенииЭто свойство доступно только для чтения.
Количество размерностей в изображении в виде положительного целого числа. Для изображений уровня мультиразрешения, которые имеют различное количество размерностей, NumDimensions
максимум, взятый через все уровни. Блокированное изображение расширяет другие уровни с одноэлементными размерностями в случае необходимости.
Типы данных: double
NumLevels
— Количество уровней разрешения изображенияЭто свойство доступно только для чтения.
Количество уровней разрешения изображения в виде положительного целого числа.
Типы данных: double
Size
— Размер изображения на каждом уровнеЭто свойство доступно только для чтения.
Размер изображения на каждом уровне в виде L-by-N матрица положительных целых чисел, где L является количеством уровней разрешения и N, является количеством размерностей изображения. blockedImage
возражайте всегда видам Size
в порядке убывания количеством пикселей, независимо от как Source
хранит уровни.
Типы данных: double
SizeInBlocks
— Размер, описанный как количество блоковЭто свойство доступно только для чтения.
Размер, описанный как количество блоков в виде L-by-N матрица положительных целых чисел, где L является количеством уровней разрешения и N, является количеством размерностей. Это свойство зависит от BlockSize
свойство. Значение включает частичные блоки.
Типы данных: double
Source
— Источник данных изображенияstring
скаляр | числовой массив | categorical
массив | struct
массивЭто свойство доступно только для чтения.
Источник данных изображения в виде числового в оперативной памяти, categorical
, или struct
массив, или как string
скаляр или char
вектор, задающий имя файла или имя папки.
Типы данных: string
WorldEnd
— Мировые координаты конечного ребра изображенияМировые координаты конечного ребра изображения в виде L-by-N числовая матрица, где L является количеством уровней разрешения и N, являются количеством размерностей. По умолчанию значением является Size + 0.5
для каждой размерности и уровня, приводящего к пикселям, которые являются одной единицей в ширину. Мировые координаты пиксельных центров совпадают с пиксельными местоположениями индекса для первого уровня.
Типы данных: double
WorldStart
— Мировые координаты стартового ребра изображенияМировые координаты стартового ребра изображения в виде L-by-N числовая матрица, где L является количеством уровней и N, являются количеством размерностей. По умолчанию значением стартового ребра является 0.5
в каждой размерности и уровне.
Типы данных: double
UserData
— Пользовательские данные сопоставлены с изображениемstruct
Пользовательские данные сопоставлены с изображением в виде struct
. Это поле может быть пустым. Можно обновить значение в любое время. Чтобы заставить это значение сохраниться с источником, запишите blockedImage
к файлу с помощью write
функция, или задают данные как параметр, когда вы создаете объект.
Типы данных: struct
apply | Блоки процесса блокированного изображения |
crop | Создайте обрезанную версию блокированного изображения |
blocksub2sub | Преобразуйте индексы блока в пиксельные индексы |
gather | Соберите блоки в текущую рабочую область |
getBlock | Считайте определенный блок блокированного изображения |
getRegion | Считайте произвольную область блокированного изображения |
setBlock | Поместите данные в определенный блок блокированного изображения |
sub2blocksub | Преобразуйте пиксельные индексы, чтобы блокировать индексы |
sub2world | Преобразуйте пиксельные индексы, чтобы блокировать индексы |
world2sub | Преобразуйте мировые координаты в пиксельные индексы |
write | Запишите блокированные данные изображения новому месту назначения |
Создайте блокированное изображение из демонстрационного изображения, включенного с тулбоксом.
bim = blockedImage('tumor_091R.tif');
Отобразите детали блокированного изображения в командной строке.
disp(bim)
blockedImage with properties: Read only properties Source: "/mathworks/devel/bat/BR2021bd/build/matlab/toolbox/images/imdata/tumor_091R.tif" Adapter: [1x1 images.blocked.TIFF] Size: [3x3 double] SizeInBlocks: [3x3 double] ClassUnderlying: [3x1 string] Settable properties BlockSize: [3x3 double]
Просмотрите блокированное изображение в окне рисунка.
bigimageshow(bim)
Считайте данные в рабочую область. В данном примере считайте демонстрационный объем, который включен с тулбоксом.
dmri = tiffreadVolume('mri.tif');
Создайте блокированное изображение из объема.
bim = blockedImage(dmri);
Отобразите детали о блокированном изображении в командной строке.
disp(bim)
blockedImage with properties: Read only properties Source: [128x128x27 uint8] Adapter: [1x1 images.blocked.InMemory] Size: [128 128 27] SizeInBlocks: [1 1 1] ClassUnderlying: "uint8" Settable properties BlockSize: [128 128 27]
Создайте набор файла изображений в папке тулбокса демонстрационных изображений.
fs = matlab.io.datastore.FileSet( ... fullfile(matlabroot,'toolbox','images','imdata'), ... "FileExtensions",{'.jpg','.png'});
Создайте массив блокированных изображений от изображений в наборе файла.
bims = blockedImage(fs);
Отобразите детали массива блокированных изображений.
disp(bims)
1x74 blockedImage array with properties: Read only properties Source: 'Various' Adapter: [1x1 images.blocked.GenericImage] ClassUnderlying: 'Various' Settable properties No properties.
Создайте блокированное изображение, к которому можно записать данные. Вы задаете формат блокированного изображения в destination
параметр. Чтобы записать в память, задайте пустую матрицу. Необходимо также задать размер изображения и размер блоков, в которые вы хотите разделенное на блоки изображение. Параметр начального значения зависит от формата, который вы задали в месте назначения. Чтобы создать перезаписываемое блокированное изображение, задайте 'Mode'
параметр со значением 'w'
для режима записи.
destination = []; imgsize = [5 7]; blocksize = [2 2]; initval = uint8(0); bim = blockedImage(destination,imgsize,blocksize,initval, "Mode", 'w');
Запишите данные с заданными блоками в блокированном изображении при помощи setBlock
объектная функция. blocksubs
параметр задает координаты блока, с которым вы хотите записать данные. blockdata
параметр задает данные, чтобы записать в заданный блок. Размер blockdata должен совпадать с размером блока.
blocksubs = [1 1];
blockdata = ones(2,2,"uint8");
setBlock(bim, blocksubs, blockdata)
Закройте изображение для записи.
Переключите блокированное изображение на режим чтения путем устанавливания параметра 'Режима' на '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');
bigimageshow(bim)
Задайте расстояние между пиксельными центрами на самом прекрасном уровне. Эта информация, полученная из необработанных данных, доступных в https://camelyon17.grand-challenge.org/Data/.
pext = 0.000226316; % (in millimeters)
Примите, что верхнее левое ребро первого пикселя запускается в (0,0).
worldStart = zeros(bim.NumLevels, bim.NumDimensions);
Вычислите правое нижнее ребро последнего пикселя самого прекрасного уровня разрешения, с помощью только пространственные размерности. С расстоянием между каждым пиксельным известным центром умножьте расстояние на количество пикселей.
worldEnd = bim.Size(1,:)*pext;
Все уровни разрешения охватывают те же мировые координаты.
worldEnd = repmat(worldEnd,[bim.NumLevels,1]);
Третья размерность содержит цветовые каналы, каждого с пиксельной степенью 1. Обновите мировые координаты ребер пикселей, чтобы сосредоточить их на целочисленных значениях (в этом случае, 1, 2, и 3).
worldStart(:,3) = 0.5; worldEnd(:,3) = 3.5;
Просмотрите изображение с обновленными координатами.
bim = blockedImage('tumor_091R.tif', ... 'WorldStart',worldStart,'WorldEnd',worldEnd); figure h = bigimageshow(bim); title('Measured in Millimeters')
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.