pdfimages kompozit

Fórumok

Sziasztok,

Adott elég nagy mennyiségű pdf anyag ami scannelt képeket tartalmaz. Ezeket a képeket szeretném kinyerni további feldolgozásra. Amikor egyszerűen be van ágyazva a kép a pdf-be akkor nincs gond, mert a pdfimages tökéletesen funkcionál. Viszont vannak képek amikor 2 gray mellett van egy mask kép is. Sehogy sem sikerül összekompozitálni imagemagick-kal a képeket, hogy megkapjam a pdfben látható képet.
pdfimages -list:
http://pastebin.com/jcUnnpX3

(az első egy extrém példa, a második a gyakoribb)
Nincs valakinek valami tippje, hogy merre keressem a megoldást?

Hozzászólások

Ez érdekes, nem tudnál valahova feltenni egy mintát?

https://www.dropbox.com/s/jzhxrdzlvxwq4kj/10005_006.jpg?dl=0
https://www.dropbox.com/s/oayfysqgsp5xxps/10005_006.zip?dl=0

Előbbi az egyik, automatorral kimentett oldal, utóbbi zipben vannak a pdfimages-zel kimentett képek. Végsősoron meg tudnám csinálni automatorral azt a kevés kódexet amit így küldött az a pár könyvtár, de nyilván hosszútávon jobb ha az emberi erőt kiiktatom.

https://www.dropbox.com/s/nsw0y73cepgewm6/10005_006.pdf?dl=0

Leellenőriztem, ez az oldal ekvivalens az eredetivel.

szerk: bocs, a válasz lemaradt. libvips-szel feldolgozom és tileokat csinálok belőle, zoomolható képekhez. http://libvips.blogspot.hu/2013/03/making-deepzoom-zoomify-and-google-m…

Megnéztem, a linuxos pdfimage sem hajlandó jpeg-be menteni a képeket, viszont tiff-be pl nem volt gondja. 3 kép van benne, a kódexlap, meg a google megjegyzése képként, illetve annak az inverze, amit ha jól látom, maszkolásra használtak.
Neked mindenképp jpeg kell?
Esetleg segítség lehet, hogy ha a ghostscript jpeg (vagy valamelyik tiff vagy png) device-n keresztül nyered ki, ekkor minden oldal 1 kép lesz, viszont rajta marad a google megjegyzése.

Ha a pdfimages tiff-be ki tudja menteni, akkor a PTS-féle tif22pnm és a CJPEG segítségével kapható JPEG file.
Mondjuk nekem fenti PDF-ről azt állítja a pdfimages, h 3 db jbig2 van benne. Amiket mentve az "első" oldal 2 fájljából már a jbig2dec csinál teljesen jól kezelhető png-t; csak jó sorrendben kell megadni a "Global_stream" és a "pagE_stream" fájlokat


jbig2dec -t png lo-000.jb2g lo-000.jb2e

(De hasonlóan a tiff-hez, a pdfimages nekem menti PNG-be is direktben, a végeredmény némileg kisebb, mint a két lépésben előállított verzió. És persze bármelyik úton előállított PNG konvertálható JPG-vé, ha kell további minőségromlás - akár a fent említett tif22pnm-hez tartozó png22pnm|cjpeg-gel.)

Fenti megoldásokkal mi a probléma?

Mivel sok oldalról és több doksiról van szó, ráadásul nem mindegyik ilyen, gondolom az, hogy a gyors és egységes feldolgozás lenne a cél, ez pedig nem megoldás erre. Persze mondjuk lehetne írni erre egy scriptet is, ami megvizsgálja oldalanként a kapott fájlokat, és mondjuk méret alapján leválogatja azt ami kell, majd konvertál is, de nem biztos, hogy ez az egyszerűbb út. Bár így viszont a google feliratai legalább eltűnnének.

Esetleg:

convert valami.pdf valami.jpg

Nekem eddig tette a dolgát.

Az eredeti becsomagolt képet szeretném visszakapni, mert az sokszor jobb minőségű mint amit a convert létrehoz (igen, ostoba módon 300 dpi-s scannelt/nagyfelbontású fényképezett képeket ágyaztak bele pdf-be és így van, hogy sokszor gigás fájlok jöttek létre). De ha nem lesz más megoldás, a speciális pdf-eket így fogom átalakítani.

Erre írtam fentebb a ghostscriptes megoldást. Egyébként a küldött mintában mintha 600 dpi-s lenne... Vagy nem tudom, de 600 dpi-nél olyan 220 mm körüli az oldalszélesség, ha dupla ekkora volt az eredeti, akkor lehet. Egyébként a ghostscriptel renderelt 600 dpi-s jpeg és a pdfimage-el kiszedett tiff pixelre pontosan azonos méretű.
Így nyertem:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r600 -dJPEGQ=100 -sOutputFile=%d-10005_006.jpg 10005_006.pdf
Az -r állítja be a felbontást, a %d sorszámozza a képeket, ha több oldalas a doksi, -dJPEGQ értelemszerűen a minőséget állítja be.