bigimage

Обработка из ядра очень больших изображений

bigimage не рекомендуется. Используйте blockedImage объект вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Описание

bigimage объект сохраняет информацию о большом файле изображения TIFF и данных изображения это содержит. bigimage представляет изображения как меньшие блоки данных, которые могут независимо загрузиться и обработаны.

Используйте bigimage объект визуализировать и обработать изображения, которые являются слишком большими, чтобы уместиться в памяти, или при обработке изображения, требует большей памяти, чем доступно. Кроме того, объект может:

  • Считайте, обработайте, и изображения на дисплее в различном несколько уровней разрешения (пирамиды изображений).

  • Считайте произвольные области изображения.

  • Считайте, установите, и блоки данных записи.

Для больших изображений с несколькими уровнями разрешения самый низкий или самый грубый уровень разрешения является уровнем, где каждый пиксель покрывает самую большую область. Самый высокий или самый прекрасный уровень разрешения является уровнем, где каждый пиксель покрывает самую маленькую область.

Создание

Описание

пример

bigimg = bigimage(filename) создает bigimage объект от большого файла изображения с именем filename.

bigimg = bigimage(dirname) создает bigimage объект из директории с именем dirname содержа файлы с большими данными изображения.

bigimg = bigimage(varname) создает bigimage объект от переменной varname в рабочей области.

bigimg = bigimage(spatialReferencing,channels,classUnderlying) создает writeable bigimage объект и наборы SpatialReferencing, Каналы и свойства ClassUnderlying, не инициализируя данные изображения.

bigimg = bigimage(levelSizes,channels,classUnderlying) создает writeable bigimage объект и наборы LevelSizes, Каналы и свойства ClassUnderlying, не инициализируя данные изображения.

bigimg = bigimage(___,'Classes',classes,'PixelLabelIDs',pixelLabelIDs) создает bigimage объект с категориальными данными. Задайте имена классов с помощью свойства Classes и отображения значений метки пикселя изображения к категориальным именам классов с помощью свойства PixelLabelIDs.

bigimg = bigimage(___,Name,Value) пары "имя-значение" использования, чтобы установить один или несколько BlockSize, SpatialReferencing, UndefinedID, свойств UnloadedValue. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

Например, bigimage(bigfile,'BlockSize',[256 256],'UnloadedValue',128) создает большое изображение из файла bigfile это имеет размер блока 256 256 пикселей и пиксельное значение по умолчанию 128.

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

развернуть все

Имя большого файла изображения в виде вектора символов или строкового скаляра. Поддерживаемыми форматами файлов является TIFF и BigTIFF. Этот аргумент устанавливает свойство DataSource.

Имя большого каталога образов в виде вектора символов или строкового скаляра. Этот аргумент устанавливает свойство DataSource.

Большая переменная изображений в рабочей области в виде числового массива размера m-by-n для одноканального изображения или m-by-n-by-c для изображения с цветовыми каналами c.

Свойства

развернуть все

Свойства файла изображения

Местоположение данных, поддерживающих большое изображение в виде вектора символов. Поддерживаемыми форматами файлов является TIFF и BigTIFF.

Если вы создаете bigimage объект, не задавая имя большого файла изображения, затем значение DataSource ''. Если вы создаете bigimage объект от переменной в рабочей области, затем значение DataSource 'variable'.

Типы данных: string

Это свойство доступно только для чтения.

Исходные метаданные в виде struct такой, как возвращено imfinfo.

Свойства данных изображения

Размер блока в виде вектора-строки с 2 элементами из положительных целых чисел формы [numrows numcols]. Размер блока является самой маленькой единицей информации что bigimage объект может читать или записать.

Типы данных: double

Это свойство доступно только для чтения.

Количество цвета или многоспектральных каналов в виде положительного целого числа.

Типы данных: double

Имена классов категориальных данных в виде массива строк или массива ячеек из символьных векторов. Classes может содержать двойные названия, чтобы сопоставить несколько пиксельная метка IDs с тем же категориальным классом.

Типы данных: char | string

Это свойство доступно только для чтения.

Тип данных пикселей изображения в виде одной из следующих строк.

"double""uint8""int8"
"single""uint16""int16"
"logical""uint32""int32"
"categorical"  

Типы данных: char | string

Это свойство доступно только для чтения.

Самый грубый уровень разрешения в виде положительного целого числа. Для изображений одно разрешения, CoarsestResolutionLevel 1.

Типы данных: double

Это свойство доступно только для чтения.

Самый прекрасный уровень разрешения в виде положительного целого числа. Для изображений одно разрешения, FinestResolutionLevel 1.

Типы данных: double

Размеры изображения на каждом уровне разрешения в виде r-by-2 матрица положительных целых чисел. Каждая строка задает [numrows numcols] размеры изображения на одном из уровней разрешения r.

Типы данных: double

Идентификаторы метки Pixel, что значения метки пикселя карты к категориальным именам классов в виде одного из следующих.

  • c- числовой вектор элемента, где c является количеством классов.

  • c-by-3 числовой массив типа данных uint8. Каждая строка содержит вектор с 3 элементами, представляющий пиксельное значение RGB, чтобы сопоставить с каждым именем класса. Используйте этот формат, когда данные о пиксельных метках будут храниться как изображение RGB.

Если пиксель имеет значение, которое не существует в PixelLabelIDsто bigimage сопоставляет пиксель с классом '<undefined>'.

Пиксельные местоположения и размеры в виде скалярного imref2d объект для одно разрешения большое изображение или r-by-1 вектор из imref2d объекты для мультиразрешения большое изображение. Каждый элемент задает размер пикселя, размер изображения и мировые пределы на одном из уровней разрешения r.

Значение метки Pixel для '<undefined>' категориальный класс в виде числового скаляра или 1 3 числового вектора. Не задавайте это значение как ни одно из значений в PixelLabelIDs.

Пиксельное значение по умолчанию раньше заполняло блоки, которые не существуют в DataSource в виде значения в таблице. Если вы не задаете UnloadedValue, затем bigimage использует пиксельное значение 0 для числовых и логических блоков и missing для категориальных блоков.

Тип данных imageФормат UnloadedValue
Логическое изображениеЛогический скаляр.
Числовое изображение

Числовой скаляр для полутоновых изображений или 1 1 каналами числовой вектор для истинного цвета и многоспектральных изображений. Если вы задаете числовой скаляр когда Channels больше 1, затем bigimage расширяет значение к 1 1 Channels числовой вектор.

Тип данных UnloadedValue должен совпадать с типом данных, заданным ClassUnderlying

Категориальное изображениеСтроковый скаляр, указывающий элемент свойства Classes.

Функции объекта

apply(Не рекомендуемый) блоки Процесса bigimage объект
isequal(Не рекомендуемый), Сравнивают два bigimage объекты для равенства
getBlock(Не рекомендуемый) блок Read bigimage объект
getFullLevel(Не рекомендуемый), Получают все данные на одном уровне bigimage объект
getRegion(Не рекомендуемый) Рид произвольная область bigimage объект
setBlock(Не рекомендуемый) Помещенные данные в определенном блоке bigimage объект
write(Не рекомендуемый) Запись bigimage содержимое объекта к новому файлу

Примеры

свернуть все

Создайте блокированное изображение из демонстрационного изображения tumor_091R.tif. Это демонстрационное изображение является учебным изображением лимфатического узла, содержащего ткань опухоли от набора данных CAMELYON16. Изображение было изменено, чтобы иметь три крупных уровня разрешения и было настроено, чтобы осуществить сопоставимое соотношение сторон и указать функции на каждом уровне.

bim = blockedImage('tumor_091R.tif');

Отобразите целое блокированное изображение на самом прекрасном уровне разрешения, включая сетку контуров блока.

bshow = bigimageshow(bim,'ResolutionLevel','fine', ...
    'GridVisible','on','GridLevel',1);

Создайте маску самого грубого уровня разрешения.

Сначала создайте изображение одно разрешения самого грубого уровня разрешения. По умолчанию, gather функция получает данные из самого грубого уровня разрешения.

imcoarse = gather(bim);

Преобразуйте крупное изображение в шкалу полутонов.

graycoarse = rgb2gray(imcoarse);

Binarize полутоновое изображение. В двоичном изображении предмет интереса является черным, и фон является белым.

bwcoarse = imbinarize(graycoarse);

Возьмите дополнение двоичного изображения. Получившаяся маска следует соглашению, в котором предмет интереса является белым, и фон является черным.

mask = imcomplement(bwcoarse);

Создайте блокированное изображение, содержащее маску.

Используйте ту же пространственную ссылку в качестве исходного блокированного изображения. Определите самый грубый уровень разрешения и получите пространственную информацию о ссылке блокированного изображения в первых двух размерностях на том уровне.

coarsestLevel = bim.NumLevels;
originalWorldStartCoarsest = bim.WorldStart(coarsestLevel,1:2);
originalWorldEndCoarsest = bim.WorldEnd(coarsestLevel,1:2);

Создайте блокированное изображение для маски.

bmask = blockedImage(mask,'WorldStart',originalWorldStartCoarsest, ...
   'WorldEnd',originalWorldEndCoarsest);

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

figure
bigimageshow(bmask)

Наложите маску на отображении исходного блокированного изображения с помощью showmask функция. Чтобы подсветить все блоки, которые содержат по крайней мере один ненулевой пиксель маски, задайте порог включения 0.

showmask(bshow,bmask,'InclusionThreshold',0)

Советы

  • Можно записать в bigimage объекты, которые создаются с помощью синтаксисов SpatialReferencing или LevelSizes. Запишите в них bigimage объекты при помощи setBlock функция. Вы не можете записать в bigimage объекты, которые создаются с помощью filename, dirname, или varname синтаксисы.

  • bigimage возразите использует свойство UnloadedValue в двух ситуациях. Первая ситуация состоит в том, когда вы создаете writeable bigimage объект. Блоки writeable bigimage объект установлен в UnloadedValue пока вы не пишете данные о блоке при помощи setBlock функция. Вторая ситуация состоит в том когда apply функционируйте прекращает обрабатывать блоки bigimage объект перед всеми блоками обрабатывается.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021a

Ссылки

[1] Bejnordi, Babak Ehteshami, Митко Вета, Пол Джоханнс ван Дист, Брэм ван Джиннекен, Нико Карссемейджер, Герт Литьенс, Йерун А. В. М. ван дер Лак, и др. “Диагностическая Оценка Алгоритмов Глубокого обучения для Обнаружения Метастаз Лимфатического узла в Женщинах С Раком молочной железы”. JAMA 318, № 22 (12 декабря 2017): 2199–2210. https://doi.org/10.1001/jama.2017.14585.

[2] Главная проблема. https://camelyon17.grand-challenge.org/Data/.

Введенный в R2019b