Има ли начин да се извлече текстова информация от postscript файл? (.ps .eps)

Искам да извлека текстовата информация, съдържаща се във файл с изображение postscript (надписите към етикетите на моята ос). Тези изображения са генерирани с pgplot. Опитах ps2ascii и ps2txt на Ubuntu, но те не дадоха никакви полезни резултати. Някой знае ли за друг метод?

Благодаря


person Hooloovoo    schedule 08.02.2011    source източник


Отговори (1)


Вероятно pgplot е начертал шрифтовете в текста директно с линии, вместо да използва текст. Особено след като pgplot е проектиран да извежда към огромен набор от устройства, включително плотери, където трябва да направите това.

Редактиране:

Ако имате достатъчно графики, за да си струва усилието, това е много проста задача за обработка на изображения. Преобразувайте всяка страница в нещо като tiff, в черно-хромиран праг на изображението в двоично, текстът ще бъде с максимална пикселна стойност.

Използвайте техника за съвпадение на шаблони. Ако имате ограничен набор от възможни етикети, просто съпоставете целия етикет, можете дори да започнете с шаблон с правилния размер и ротация. След това просто маркирайте всеки график като съдържащ label[1-n], няма нужда да четете действителния текст.

Ако не знаете етикета, все пак можете да направите OCR сравнително лесно, просто извлечете региона около оста, завъртете го за вертикала - и използвайте безплатната OCR библиотека на Google

Ако имате pgplot, можете дори да изградите обучителния набор за OCR или шаблонните изображения директно, вместо да се налага да ги събирате от списъка с изображения

person Martin Beckett    schedule 08.02.2011
comment
Примерът за постскрипт pgplot astro.caltech.edu/~tjp/pgplot/ example1.ps.gz прави точно това. Техниките за OCR са алтернатива, но може да е еднакво бързо да въведете надписите, в зависимост от... - person DSM; 08.02.2011
comment
@ DSM: Всъщност се интересувам от обратно инженерство на това. Използвайки вашия пример, искам да извлека низа y = x² exp(-x) от фигурата example1.ps - person Hooloovoo; 08.02.2011
comment
@Hooloovoo: Разбирам това, но Мартин е прав: в този пример самият текст го няма, а само редовете, които изграждат знаците. (Това имах предвид, че прави точно това.) Трябва сами да погледнете файловете, за да се уверите. Мога да се сетя само за два правдоподобни начина за възстановяване на текста: можете да приложите OCR методи към растерно изображение или (тъй като вероятно можете да направите речник на нови надписи) евентуално да анализирате директно постскриптума. - person DSM; 08.02.2011
comment
Гадно, имам 4000 файла, за които трябва да направя това. Благодаря за помощта все пак :) - person Hooloovoo; 08.02.2011
comment
OCR - трябва да е сравнително лесно, имате перфектни цифрови копия на файловете, текстът е на известно място с известно завъртане и със същия шрифт. Ако имате само ограничен набор от възможни етикети, тогава директно съвпадение на шаблон може лесно просто да ви каже, че изображението има определен етикет от списък. - person Martin Beckett; 08.02.2011
comment
@ Martin - Ще видя дали мога да намеря OCR пакети в Python. Както казвате, знам местоположението на текста на всички изображения, така че трябва да е възможно да го извлека. pytesser изглежда обещаващо, но не съм сигурен, че ще работи на Ubuntu. Ще го проверя. Благодаря за помощта. - person Hooloovoo; 08.02.2011
comment
code.google.com/p/tesseract-ocr е най-добрата ocr библиотека, тъй като е от google и те са магазин за python, предполагам, че ще има отлични обвързвания на python. Въпреки това - ако имате само няколко 100 възможни етикета, бих използвал директно съвпадение на шаблони - person Martin Beckett; 08.02.2011