Como posso transformar fotos de documentos em papel em um documento digitalizado? está relacionado, mas não é o mesmo, pois estou falando de arquivos pdf. O processamento de imagens parece complicado nas respostas da pergunta vinculada, principalmente porque envolve o processamento de cada imagem separadamente : dado que meu pdf tem centenas de páginas , a solução que espero não é processar/editar imagens, mas simplesmente digitalizar fotos digitais e documenta como os reais são . Quero dizer algo como um "scanner virtual" para o qual a entrada seria um pdf baseado em foto ou uma coleção de fotos e a saída um documento digitalizado "normal". (Também a ferramenta Scantailor recomendada - também aqui - parece não ter uma versão Linux agora.)
Não se trata de OCR e nem de converter imagem em texto.
Para esclarecer o que quero dizer, vou postar alguns exemplos.
Existem arquivos pdf baseados em texto , não em imagem, e são arquivos de texto (digamos docx ou odt) exportados para pdf. Eles parecem prontos para serem impressos:
O acima não é o que discuto aqui.
O que me interessa são os pdfs nas imagens abaixo, ou seja, a diferença entre páginas de texto digitalizadas que se parecem muito com imagens e páginas de texto digitalizadas que parecem texto digitalizado.
As primeiras são formadas por imagens que parecem fotos tiradas de páginas de livros:
ou
Essas cópias dificilmente podem ser reimpressas em papel , pois o fundo também será impresso.
Os segundos são o que se esperaria do texto digitalizado e podem ser impressos:
ou
O pdf semelhante a uma imagem já pode ser processado por OCR e seu texto pesquisável, e ainda parecer uma coleção de fotos (de página): OCR não é o problema aqui.
O que eu quero é a aparência clara em preto sobre branco do pdf "digitalizado" e a remoção de todos os detalhes "reais" (especialmente sombras) que são normais em uma foto, mas devem estar ausentes em uma página impressa.
Como @vanadium notou em um comentário, estou procurando uma solução de software que limpe automaticamente as imagens de um documento, muito parecido com o Google Scan em um smartphone .
Como @ user535733 disse em um comentário, o problema aqui parece ser, pelo menos até certo ponto, o de converter o texto em tons de cinza (digitalizado/imagem) em preto e branco .
scantailor
não é mais mantido, mas você ainda pode compilá-lo a partir da fonte e usá-lo.No entanto, o repositório original precisa do
qt4
, que não é facilmente instalável nas versões recentes do Ubuntu. Você pode usar, por exemplo , este garfo que se adaptou aoqt5
.Pré-requisitos:
Instalação:
Isenção de responsabilidade: não conheço o mantenedor deste fork e não posso dizer nada sobre a segurança de sua versão.
Outra opção seria usar o Scantailor advanced . Você pode instalá-lo através
snap
...... ou flatpack .
... ou via ppa .
Teste rápido:
Como solução direta em PDF (sem extração manual de imagens):
Usando
ocrmypdf
para restaurar o OCR (como mencionado no final da parte complementar desta resposta), notei queocrmypdf -h
mostra uma opção que parecia exatamente o que é solicitado:O pdf inicial já tinha OCR, o que dá erro, a menos que uma das seguintes opções seja usada:
ou
Aplicar cada um separadamente a um dos meus arquivos grandes com centenas de páginas que já tinham OCR travou o processo.
The best solution seems to me to first print to pdf the initial file (which removes OCR), and then do
For English, the
-l
option is not needed.-v
is for verbose details in terminal.The resulted pdf is larger than the input (because of the
--remove-background
option): reduce the size as said below.About Scan Tailor, as a complement to the main answer
Even its icon illustrates the fact that it is intended exactly for what is asked here:
Here is how to use Scan Tailor with pdfs:
pdftoppm MY_PDF.pdf NAME -tiff
- as said here. — Other variables can be used instead oftiff
(which givestif
files), for examplepng
orjpeg
. See here a set of Dolphin service menu actions for the various extraction options:tif
files are as you want them.) There are many ways to create a new pdf. Again the GUI tools that I've tried very soon crashed or gave odd results, so I prefer to put the resultingtif
files in a separate folder and there run the commandimg2pdf *.tif -o out.pdf
- as said here. (This may need proper naming/numbering of the files. More on that here.)The resulting "tailored" pdf will be smaller than the initial one, but the percentage of the size reduction varies depending on factors that I ignore (but I imagine that the pages contained in the initial pdf should be extracted — at step 1 — in the format they already have; I think
jpeg
andtif
should be used instead ofpng
; usepdfimages -list your.pdf
in terminal to see details on format, dpi and other details before processing with the commands above and below).The final pdf can be further reduced with a command like:
More details on that, here.
Here is a set of Dolphin service menu actions based on the above link:
I got some help from this answer too.
OCR (text search and copy capability) is lost during the above procedure, if present in the initial pdf. In order to get OCR, use
ocrmypdf input.pdf output.pdf
for English, as said here. For other languages, look for them withapt-cache search tesseract-ocr
, and install them. Add-l <LANG>
at the end of the command for specific languages; more here; see their names also here.Here is a Dolphin service menu action for Romanian OCR with two options (one with progress in terminal and fixed output name, the other with background process but with output name based on input; I would like to have both process in terminal and output name based on input but don't know how; if someone can do it, please post here!). For English, replace "Romanian" and remove the
-l ron
variable:(Extracting and processing images, as well as 'printing as pdf' removes OCR, but reducing size with ghostscript as above does not, so the "shrinking" can be applied before or after the OCR.)
Eu tenho um resultado muito bom usando imageMagick e o seguinte script http://www.fmwconcepts.com/imagemagick/shadowhighlight/index.php
Aqui está o resultado usando os seguintes parâmetros:
Just install Gimp(preferably use appimage). Following are the options:
Second option 2) Select Image>Mode>Indexed>Use black and white 1 bit palette
Any number of pages your pdf may have this will convert all to 1 bit Black and White.
Edit on 02/11/2021: As per query raised by cipiricus
Here are steps that I follow: