Вытащить изображение из TIFF

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

Ответить
ivt22
Сообщения: 5
Зарегистрирован: 10 окт 2013, 11:20

Подскажите плз. Не знаю в какой теме писать, напишу здесь.
Есть программа Microsoft Document Imaging ей нужно отправлять изображение .TIFF она его распознает и сохраняет в этом же файле. Как из этого файла допустим средствами Delphi вытянуть текст? Вот что нарыл:

Цитата:
Файлы в формате Tagged Image File Format (TIFF)

TIFF — широко распространенный формат различных графических приложений, включая те, которые используются в сканерах и факсах.TIFF-формат применяется в Microsoft Office Document Imaging , здесь широко используются возможности данного формата включать текст, распознанный программой оптического распознавания текста. При сканировании новых документов они сохраняются в TIFF-формате (с расширением .tif), и любой текст, для которого применялось распознавание текста, сохраняется в TIFF-файле вместе с изображением.

Можно открывать и редактировать TIFF-файлы, созданные в MIcrosoft Office Document Imaging, во многих других графических приложениях. При этом, однако, утрачивается весь содержавшийся в файле текст, для которого применялась программа распознавания текста. Необходимо снова выполнить распознавание текста, если требуется получить доступ к тесту в TIFF-файле с применением Microsoft Office Document Imaging.

Технические детали
В Microsoft Office Document Imaging создаются файлы в следующих форматах:
Монохромный. Один бит на пиксель, сжатие G4
Оттенки серого. 8 бит на пиксель, сжатие JPEG
Цвет. 24 бита RGB, сжатие JPEG
Microsoft Office Document Imaging поддерживает:
Все типы сжатия, перечисленные в списке стандартов спецификации TIFF 6.0.
Различные типы сжатия для каждой страницы многостраничного документа.
Изображения в формате TIFF с 1-разрядной, 4-разрядной, 8-разрядной или 24-разрядной палитрой (в цветах палитры или не входящих в палитру).
Цветовые форматы RGB и CMYK.
Мозаичные изображения.
Microsoft Office Document Imaging не поддерживает:
Цветовой формат YCbCr, за исключением изображений в формате JPEG.
Цветовой формат CIE Lab.
Изображения более чем с пятью компонентами на точку или с размерами компонента более 32 разрядов.
Изображения в формате Planar.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Распознаванием текста на картинке занимаются специальные программы, вроде Adobe Acrobat
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
ivt22
Сообщения: 5
Зарегистрирован: 10 окт 2013, 11:20

Хыиуду писал(а):Распознаванием текста на картинке занимаются специальные программы, вроде Adobe Acrobat
Я понимаю, еще этим занимается программа Microsoft Open document Imaging. Я по средством командной строки посылаю этой проге команду распознать текст в картинке TIFF она распознает и сохраняет этот текст куда-то внутрь картинки в цитате выше это объясняется. Т.е. уже не нужно никаких Finerider-ов изображение уже становится распознанным, где-то внутри файла с картинкой хранится этот текст, я не могу понять как его оттуда достать, если в программе Document Imaging нажать кнопку экспортировать в Word, то туда копируется текст, но я не могу в Delphi сэмулировать нажатие этой кнопки и потом копирование текста из Word. Это не рационально, надо найти куда этот текст сохраняется и как его тем же Delphi достать.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Нужен пример распознанного файла
It's a long way to the top if you wanna rock'n'roll
ivt22
Сообщения: 5
Зарегистрирован: 10 окт 2013, 11:20

Вот пример файла.
http://files.mail.ru/D7B38AA9C4454363953CA41CE380DAC1
Я кое-что нарыл:
Да. Вполне возможно. Начиная с 2003 офиса появилось такое средство как MODI (Microsoft Office Document Imaging).
http://msdn.microsoft.com/en-us/libr...ice.11%29.aspx
Вот пример использования:
Код:

Public Sub Test_MODI_OCR_Text_From_TIF()
Dim oMODI As Object
Set oMODI = CreateObject("MODI.Document")
With oMODI
.Create (ThisWorkbook.Path & "\test.tif")
.OCR (9) 'Английский язык
MsgBox .Images.Item(0).Layout.Text
.Close
End With
Set oMODI = Nothing
End Sub
Но это на VBA. Вот так мне посоветовали перевести в Delphi
uses ComObj
...
var
modi: olevariant;
fname: TFileName;
begin
fname:='.....';
modi:=CreateOLEObject('MODI.Document'); // получить доступ к MODI
// и далее по идее "пишем" функции MODI
modi.Create(fname);
modi.OCR(9); // сдается мне что это не хранение а распознавание налету.
showmessage(modi.images.item(0).layout.text);
modi.close;
modi:=nil; // MODI нам более не нужен
end;
но вылетает ошибка - класс не зарегистрирован(((
Ответить