Шлюз MATLAB к библиотечным подпрограммам LibTIFF
Tiff
объект представляет связь с файлом тегового формата графических файлов (TIFF) и обеспечивает доступ ко многим функциям библиотеки LibTIFF. Tiff
предложения больше возможностей, чем imread
и imwrite
функции, такие как чтение подызображений, запись мозаик и полос данных изображения и изменения отдельных тегов TIFF.
В большинстве случаев, синтаксис Tiff
объектная функция похожа на синтаксис соответствующей библиотечной функции LibTIFF. Полностью изучать возможности Tiff
возразите, обратитесь к LibTIFF API и спецификации TIFF и техническим примечаниям. Смотрите эту документацию в наборе библиотек и утилит LibTIFF — TIFF
.
MATLAB® поддерживает версию 4.0.10 LibTIFF. Для получения информации об авторском праве о LibTIFF
библиотека, смотрите libtiffcopyright.txt
файл.
filename
— Имя файлаИмя файла, заданного как вектор символов или скаляр строки.
Пример: 'myfile.tif'
mode
— Тип доступа к файлу'r'
(значение по умолчанию) | 'w'
| 'w8'
| 'a'
| 'r+'
Тип доступа к файлу, заданный как одно из этих значений.
Параметр | Описание |
---|---|
'r' | Открытый файл для чтения (значения по умолчанию). |
'w' | Открытый файл для записи; отбросьте существующее содержимое. |
'w8' | Открытый файл для того, чтобы записать файл BigTIFF; отбросьте существующее содержимое. |
'a' | Откройте или создайте файл для записи; добавьте данные к концу файла. |
'r+' | Открытый (не создают), файл для чтения и записи. |
Когда вы открываете файл TIFF для записи или добавления, Tiff
объект автоматически создает IFD в файле для записи последующих данных. Эта IFD имеет все значения по умолчанию, заданные в Версии TIFF 6.0
.
Файлы TIFF состоят из директорий файла изображения (IFDs), которые содержат данные изображения и сопоставленные теги. Теги содержат сопутствующую информацию изображений, такую как ширина изображения, высота изображения и количество выборок. Каждое свойство TIFF является структурой, которая вводит значения для тега. Установите значения тега с помощью setTag
функция. Например, создайте файл и задайте сжатие JPEG.
t = Tiff('myfile.tif','w'); setTag(t,'Compression',Tiff.Compression.JPEG);
Когда вы создаете файл, прежде, чем записать данные к файлу, необходимо установить эти теги:
ImageWidth | Compression |
ImageLength | PlanarConfiguration |
BitsPerSample | Photometric |
SamplesPerPixel |
В зависимости от размещения изображения необходимо установить эти дополнительные теги:
Разделенное размещение — Набор RowsPerStrip
тег.
Мозаичное размещение — Набор TileWidth
и TileHeight
теги.
Compression
— Схема сжать данные изображенияСхема сжать данные изображения, сохраненные в структуре этими полями.
Имя поля |
---|
None |
CCITTRLE (Read-only) |
CCITTFax3 |
CCITTFax4 |
LZW |
OJPEG |
JPEG |
AdobeDeflate |
... |
Видеть полный список значений, которые MATLAB поддерживает для Compression
пометьте, введите Tiff.Compression
в Командном окне.
Пример: setTag(t,'Compression',Tiff.Compression.JPEG);
ExtraSamples
— Дополнительное описание каналаДополнительное описание канала, сохраненное в структуре этими полями.
Имя поля | Описание |
---|---|
Unspecified | Незаданные данные |
AssociatedAlpha | Связанная альфа (предварительно умножается) |
UnassociatedAlpha | Несвязанные альфа-данные |
Если дополнительные каналы существуют в дополнение к обычным колориметрическим каналам, то ExtraSamples
тег требуется. Для использования в качестве примера см. изображение TIFF Записи с Данными о Цветовом канале и Альфа-канале.
Пример: setTag(t,'ExtraSamples',Tiff.ExtraSamples.AssociatedAlpha)
Group3Options
— Группа 3 Опции сжатия факсаГруппа 3 Опции сжатия факса, сохраненные в структуре этими полями.
Имя поля | Описание |
---|---|
Encoding2D | Бит 0 равняется 1. Это значение задает двумерное кодирование. Если больше чем одна полоса задана, каждая полоса должна начаться с одномерно закодированной линии. Таким образом, |
Uncompressed | Бит 1 равняется 1. Это значение задает несжатый режим при кодировании. |
FillBits | Бит 2 равняется 1. Добавьте биты заливки по мере необходимости перед кодами EOL, такими, что EOL всегда заканчивается на контуре байта. Это гарантирует, что нулевое откусывание предшествует последовательности EOL на 1 байт. Например, |
Это свойство также упоминается как Fax3
или T4Options
. Значение свойства является небольшой маской, которой управляет первый 3
биты.
Пример: setTag(t,'Group3Options',Tiff.Group3Options.Uncompressed);
InkSet
— Разделенные чернила изображений установленыРазделенный набор чернил изображений, сохраненный в структуре этими полями.
Имя поля | Описание |
---|---|
CMYK | Порядок компонентов: голубой, пурпурный, желтый, черный. Обычно, значение 0 представляет 0%-е покрытие чернил, и значение 255 представляет 100%-е покрытие чернил для того компонента, но консультируйтесь со спецификацией TIFF для DotRange . Когда вы зададите CMYK, не устанавливайте InkNames тег. |
MultiInk | Любое упорядоченное расположение кроме CMYK. Консультируйтесь со спецификацией TIFF для InkNames поле для описания чернил используется. |
В контексте этого свойства, разделенного, относится к светоизмерительной интерпретации (не плоская настройка).
Пример: setTag(t,'InkSet',Tiff.InkSet.CMYK);
JPEGColorMode
ColorMode Цветовой режим, сохраненный в структуре этими полями.
Имя поля | Описание |
---|---|
Raw (значение по умолчанию) | Сохраните вход как отдельный Y, Cb и матрицы Cr. |
RGB | Преобразуйте вход RGB в YCbCr. |
Не используйте это свойство считать YCbCr
формирование изображений как RGB
. Вместо этого используйте RGBA
интерфейс обеспечен readRGBAImage
readRGBAStrip
, и readRGBATile
функции.
Для примера смотрите, Создают изображение YCbCr/JPEG из данных о RGB.
Пример: setTag(t,'JPEGColorMode',Tiff.JPEGColorMode.RGB);
Orientation
— Визуальная ориентация данных изображенияВизуальная ориентация данных изображения, сохраненных в структуре этими полями.
Имя поля |
---|
TopLeft |
TopRight |
BottomRight |
BottomLeft |
LeftTop |
RightTop |
RightBottom |
LeftBottom |
Orientation
свойство описывает ориентацию изображения относительно строк и столбцов. Например, когда Orientation
установлен в TopLeft
, затем первая строка представляет верхнюю часть изображения, и первый столбец представляет левую сторону. Значение задано в Orientation
в информационных целях только, и это не влияет, как MATLAB читает или пишет данные изображения.
Пример: setTag(t,'Orientation',Tiff.Orientation.TopLeft);
Photometric
— Цветовое пространство данных изображенияЦветовое пространство данных изображения, сохраненных в структуре этими полями.
Имя поля |
---|
MinIsWhite |
MinIsBlack |
RGB |
Palette |
Mask |
Separated (CMYK) |
YCbCr |
CIELab |
ICCLab |
ITULab |
LogL |
LogLUV |
CFA |
LinearRaw |
Пример: setTag(t,'Photometric',Tiff.Photometric.RGB);
PlanarConfiguration
— Настройка устройства хранения данныхНастройка устройства хранения данных значений компонента изображения, сохраненных в структуре этими полями.
Имя поля | Описание |
---|---|
Chunky | Сохраните значения компонента для каждого пикселя непрерывно. Например, в случае данных о RGB, сохраните первые три пикселя в файле как RGBRGBRGB. Почти все изображения TIFF имеют непрерывные плоские настройки. |
Separate | Сохраните значения компонента для каждого пикселя отдельно. Например, в случае данных о RGB, красный компонент хранится отдельно в файле от зеленых и синих компонентов. |
Пример: setTag(t,'PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);
ResolutionUnit
— Модули разрешенияМодули разрешения, чтобы интерпретировать значения, содержавшиеся в XResolution
и YResolution
теги, сохраненные в структуре этими полями.
Имя поля | Описание |
---|---|
None | Значение по умолчанию. |
Inch | Присвойте модульные дюймы для значений, содержавшихся в XResolution и YResolution теги. |
Centimeter | Присвойте модульные сантиметры для значений, содержавшихся в XResolution и YResolution теги. |
Например, следующие кодовые наборы значение разрешения изображения в X
и Y
направления к 300
пиксели на дюйм:
setTag(t,'ResolutionUnit',Tiff.ResolutionUnit.Inch); setTag(t,'XResolution',300); setTag(t,'YResolution',300);
Пример: setTag(t,'ResolutionUnit',Tiff.ResolutionUnit.Inch);
SampleFormat
— Пиксельный демонстрационный форматПиксельный демонстрационный формат, сохраненный в структуре этими полями.
Имя поля | Описание |
---|---|
UInt (значение по умолчанию) | Данные беззнаковых целых чисел |
Int | Дополнительные данные о целом числе со знаком Туо |
IEEEFP | Данные с плавающей запятой IEEE |
MATLAB не поддерживает форматы Void
, ComplexInt
, и ComplexIEEEFP
.
Пример: setTag(t,'SampleFormat',Tiff.SampleFormat.IEEEFP);
SGILogDataFmt
— SGIL
формат данных кодекаSGIL
формат данных кодека, сохраненный в структуре этими полями.
Имя поля | Описание |
---|---|
Float | Выборки одинарной точности. |
Bits8 | uint8 выборки (только для чтения). |
Установка SGILogDataFmt
к Float
или Bits8
подразумевает SamplesPerPixel
значение 3
для LogLuv
изображения и значение 1
для LogL
изображения.
Можно установить SGILogDataFmt
пометьте только однажды на экземпляр для LogL/LogLuv
Объект изображения TIFF.
Используйте следующий код, чтобы создать Tiff
объект, набор формат данных SGIL, и затем считал данные изображения.
tiffobj = Tiff('example.tif','r'); setDirectory(tiffobj,3); % image three is a LogLuv image setTag(tiffobj,'SGILogDataFmt',Tiff.SGILogDataFmt.Float); imdata = read(tiffobj);
Пример: setTag(t,'SGILogDataFmt',Tiff.SGILogDataFmt.Float);
SubFileType
— Тип изображенияТип изображения, сохраненного в структуре этими полями.
Имя поля | Описание |
---|---|
Default | Значение по умолчанию для единого файла изображения или сначала отображает. |
ReducedImage | Изображение является одним изображением мультиизображения (или многостраничный) файл. |
Page | Несвязанные альфа-данные. |
Mask | Изображение является маской прозрачности для другого изображения в файле. Светоизмерительным значением интерпретации должен быть Photometric.Mask . |
Пример: setTag(t,'SubFileType',Tiff.SubFileType.Mask);
TagID
— Идентификаторы тега TIFFИдентификаторы тега TIFF, которые MATLAB поддерживает, сохраненный в структуре этими полями.
Имя поля | Значение |
---|---|
SubFileType | 254 |
ImageWidth | 256 |
ImageLength | 257 |
BitsPerSample | 258 |
Compression | 259 |
Photometric | 262 |
Thresholding | 263 |
FillOrder | 266 |
... | ... |
Для полного списка имен тега и их соответствующих идентификаторов тега, введите Tiff.TagID
в Командном окне.
Используйте это свойство задать тег, когда вы будете использовать setTag
функция. Например, Tiff.TagID.ImageWidth
возвращает ID ImageWidth
тег. Чтобы получить список всех поддерживаемых тегов, используйте Tiff.getTagNames
функция.
Пример: setTag(t,Tiff.TagID.ImageWidth,300);
Thresholding
— Метод пороговой обработкиМетод пороговой обработки, сохраненный в структуре этими полями.
Имя поля |
---|
BiLevel |
HalfTone |
ErrorDiffuse |
Используйте этот тег, чтобы задать который алгоритм использовать при преобразовании пикселей от шкалы полутонов до черного цвета и белого цвета.
Пример: setTag(t,'Thresholding',Tiff.Thresholding.HalfTone);
YCbCrPositioning
— Положение выборок цветностиПоложение выборок цветности относительно выборок яркости, сохраненных в структуре этими полями.
Имя поля | Описание |
---|---|
Centered | Задайте для совместимости с промышленными стандартами, такими как PostScript® Level 2. |
Cosited | Задайте для совместимости с большинством стандартов цифрового видео, таких как Рекомендация 601-1 CCIR. |
Пример: setTag(t,'YCbCrPositioning',Tiff.YCbCrPositioning.Centered);
Файл TIFF составлен из одной или нескольких директорий файла изображения (IFDs). IFD содержит данные изображения и его связанные метаданные. IFDs может содержать subIFDs, которые также содержат данные изображения и метаданные. Когда вы открываете файл TIFF для чтения, Tiff
объект делает первую IFD в файле IFD current. Функции объекта Tiff работают с текущей IFD.
read | Считайте целое изображение TIFF |
readEncodedStrip | Считайте данные из заданной полосы |
readEncodedTile | Считайте данные из заданной мозаики |
readRGBAImage | Считайте изображение с помощью интерфейса RGBA |
readRGBAStrip | Считайте данные о полосе с помощью интерфейса RGBA |
readRGBATile | Считайте данные о мозаике с помощью интерфейса RGBA |
close | Закрытие объекта Tiff |
write | Запишите целое изображение |
writeEncodedStrip | Запишите данные к заданной полосе |
writeEncodedTile | Запишите данные к заданной мозаике |
close | Закрытие объекта Tiff |
getTag | Значение заданного тега |
setTag | Установите значение тега |
Tiff.getTagNames | Список распознанных тегов TIFF |
currentDirectory | Возвратите индекс текущей IFD |
lastDirectory | Определите, является ли текущая IFD последней в файле |
nextDirectory | Сделайте следующую IFD текущей IFD |
setDirectory | Сделайте заданную IFD текущей IFD |
setSubDirectory | Сделайте subIFD текущей IFD |
rewriteDirectory | Запишите измененные метаданные в существующую IFD |
writeDirectory | Создайте новую IFD и сделайте ее текущей IFD |
isTiled | Определите, размещается ли изображение рядом |
computeTile | Индекс мозаики, содержащей заданные координаты |
numberOfTiles | Общее количество мозаик в изображении |
computeStrip | Индекс полосы, содержащей заданную координату |
numberOfStrips | Общее количество полос в изображении |
getVersion | Версия библиотеки LibTIFF |
Создайте новый файл под названием myfile.tif
. Чтобы запустить этот пример, у вас должен быть доступ для записи к папке.
t = Tiff('myfile.tif','w');
Закройте Tiff
объект.
close(t);
Для набора данных с цветовыми каналами и альфа-каналами, набор Tiff
теги и затем пишут данные в файл.
Создайте массив данных, data
, это содержит цветовые каналы и альфа-канал.
rgb = imread('example.tif'); numrows = size(rgb,1); numcols = size(rgb,2); alpha = 255*ones([numrows numcols], 'uint8'); data = cat(3,rgb,alpha);
Создайте Tiff
объект.
t = Tiff('myfile.tif','w');
Установите теги Tiff и задайте значение ExtraSamples
пометьте, потому что данные содержат альфа-канал в дополнение к цветовым каналам.
setTag(t,'Photometric',Tiff.Photometric.RGB); setTag(t,'Compression',Tiff.Compression.None); setTag(t,'BitsPerSample',8); setTag(t,'SamplesPerPixel',4); setTag(t,'SampleFormat',Tiff.SampleFormat.UInt); setTag(t,'ExtraSamples',Tiff.ExtraSamples.Unspecified); setTag(t,'ImageLength',numrows); setTag(t,'ImageWidth',numcols); setTag(t,'TileLength',32); setTag(t,'TileWidth',32); setTag(t,'PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);
Запишите данные в файл TIFF и закройте Tiff
объект.
write(t,data); close(t);
Запишите данные изображения RGB в файл TIFF как изображение YCbCr/JPEG.
Получите данные о RGB.
rgb = imread('example.tif');
Создайте Tiff
объект, t
, и набор теги. Укажите, что входные данные являются RGB с помощью JPEGColorMode
тег.
t = Tiff('myfile.tif','w'); setTag(t,'Photometric',Tiff.Photometric.YCbCr); setTag(t,'Compression',Tiff.Compression.JPEG); setTag(t,'YCbCrSubSampling',[2 2]); setTag(t,'BitsPerSample',8); setTag(t,'SamplesPerPixel',3); setTag(t,'SampleFormat',Tiff.SampleFormat.UInt); setTag(t,'ImageLength',size(rgb,1)); setTag(t,'ImageWidth',size(rgb,2)); setTag(t,'TileLength',32); setTag(t,'TileWidth',32); setTag(t,'PlanarConfiguration',Tiff.PlanarConfiguration.Chunky); setTag(t,'JPEGColorMode',Tiff.JPEGColorMode.RGB); setTag(t,'JPEGQuality',75);
Запишите данные в файл TIFF и закройте Tiff
объект.
write(t,rgb); close(t);
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.