Puncte:9

Obțineți text negru gata pentru imprimantă pe fundal alb în fișierele pdf scanate (eliminați tonuri de gri sau fundal color)

drapel br

Cum pot transforma fotografiile documentelor pe hârtie într-un document scanat? este legat, dar nu la fel, deoarece vorbesc despre fișiere pdf. Prelucrarea imaginilor pare complicată în răspunsurile de la întrebarea legată, mai ales că implică procesând fiecare imagine separat: dat pdf-ul meu are sute de pagini, solutia la care ma astept nu este aceea a procesarii/editarii imaginilor, ci pur si simplu a scanarea fotografiilor și documentelor digitale așa cum sunt cele reale. Mă refer la ceva de genul unui „scaner virtual” pentru care intrarea ar fi un pdf bazat pe fotografii sau o colecție de fotografii, iar rezultatul ar fi un document scanat „normal”. (De asemenea Scantailor instrument recomandat - de asemenea Aici - pare să nu aibă o versiune Linux acum.)


Aceasta este nu despre OCR și nu despre conversia imaginii în text.

Pentru a clarifica ce vreau să spun, voi posta câteva exemple.

Sunt fișiere pdf bazate pe text, nu imagine și sunt fișiere text (să spunem docx sau odt) exportate în pdf. Par gata pentru a fi tipărite:

introduceți descrierea imaginii aici

Cel de mai sus este nu ceea ce discut aici.

Ceea ce mă interesează sunt pdf-urile din imaginile de mai jos, și anume diferența dintre paginile de text scanate care arată prea mult ca imagini și paginile de text scanat care arată ca text digitizat.

Primele sunt formate din imagini care arată ca poze facute de pagini de carte:

introduceți descrierea imaginii aici

sau

introduceți descrierea imaginii aici

Astfel de copii cu greu pot fi retipărite pe hârtie, deoarece fundalul va fi și el imprimat.

Cele doua sunt ceea ce te-ai aștepta de la scanat text și poate fi tipărit:

introduceți descrierea imaginii aici

sau

introduceți descrierea imaginii aici

PDF-ul asemănător unei imagini poate fi deja procesat prin OCR și textul său poate fi căutat și să arate în continuare ca o colecție de fotografii (pagini): OCR nu este problema aici.

Ceea ce vreau este aspectul clar alb-negru al pdf-ului „scanat” și eliminarea tuturor detaliilor „reale” (în special umbrele) care sunt normale într-o fotografie, dar ar trebui să lipsească într-o pagină tipărită.


După cum a observat @vanadium într-un comentariu, eu sunt caută o soluție software care să curețe automat imaginile unui document, la fel ca Google Scan pe un smartphone.

După cum a spus @user535733 într-un comentariu, problema aici pare să fie, cel puțin într-o oarecare măsură, aceea de a converti tonuri de gri (scanat/imagine) text la alb-negru.

pLumo avatar
drapel in
În primul rând, nu cred că întrebarea ta are legătură cu Ubuntu. Cum să remediați este destul de ușor, așa cum este legat în cealaltă întrebare, dar doriți să automatizați sarcina într-un fel, astfel încât întrebarea dvs. este mai mult o sarcină de programare care s-ar potrivi mai bine altor site-uri din rețea. De asemenea, nu oferiți nimic din ce ați încercat și nici o idee despre cum să începeți. Și nici nu văd de ce un PDF bazat pe JPEG este diferit de o imagine, așa că procesarea imaginii este răspunsul corect, deși nu manual.
drapel br
@pLumo - Caut un instrument Ubuntu pentru a scana documente digitale așa cum o face un scaner real pentru documente reale.
Thomas Weller avatar
drapel ru
IMHO vrei imposibilul: nu vrei procesare a imaginii, dar exact asta trebuie să facă scanerul virtual. Linux și Ubuntu facilitează rularea unui utilitar într-un director plin de fișiere. Contrastul și schimbarea luminozității sunt de obicei suficiente.
Thomas Weller avatar
drapel ru
BTW: exemplul destul de gri nu este o fotografie: este scanat. Acolo unde cartea se pliază, lumina se reflectă și, datorită unghiului de reflexie, devine mai strălucitoare spre interior, deși este mai departe de sursa de lumină și ne-am aștepta să fie mai întunecat. Acest lucru nu s-ar întâmpla pentru o fotografie. O soluție este să scanați doar o pagină odată în loc de două pagini. Oamenii construiesc scanere speciale pentru a sprijini acest lucru: cărțile nu vor fi așezate plat.
drapel br
@ThomasWeller - Nu vreau să spun că refuz orice procesare a imaginii, ci doar reglarea manuală a modului în care se recomandă GIMP. Practic, caut ceva de genul simple-scan sau skanlite, dar care ar introduce documente digitale în loc de cele reale dintr-un scaner real. (De asemenea, faptul că în acel document paginile sunt de fapt scanate și doar *arata* ca fotografiile nu este problema: trebuie să le fac să arate mai simplu text scanat.)
vanadium avatar
drapel cn
@ThomasWeller nu este chiar imposibil. Este ceea ce este disponibil pe fotografiile inteligente. OP caută doar o soluție software care să curețe automat imaginile unui document, la fel ca Google Scan pe un smartphone.
user535733 avatar
drapel cn
Se pare că doriți să faceți o *imagine în tonuri de gri* care conține mai multe pagini și să *procesați acea imagine* , separând paginile individuale, îndreptând paginile, convertind tonurile de gri în alb-negru și îmbunătățind în alt mod lizibilitatea. Nimic din toate acestea nu necesită termenul confuz „scanare” în titlul sau corpul întrebării.
drapel vn
Răspunde asta la întrebarea ta? [Cum pot elimina fundalul paginii în tonuri de gri al unui document PDF scanat în timp ce păstrez textul? (binarizare)](https://askubuntu.com/questions/396437/how-can-i-remove-the-gray-scale-page-background-of-a-pdf-document-scan-while-pre)
karel avatar
drapel sa
@PabloBianchi Am votat pentru a lăsa această întrebare deschisă și am votat închidere întrebarea dvs. duplicată legată ca un duplicat al acestei întrebări, deoarece răspunsurile acestei întrebări sunt mai actualizate.
karel avatar
drapel sa
@cipricus Vă rugăm să închideți votul [această întrebare](https://askubuntu.com/q/396437/) ca un duplicat al întrebării dvs. mai actualizate.
drapel vn
@karel Ești sigur că răspunsurile de aici sunt mai actuale? Am avut impresia inversă, tot cu o calitate mai scăzută..
Puncte:10
drapel in

scantailor nu mai este întreținut, dar îl puteți construi din sursă și îl puteți utiliza.

Însă depozitul original are nevoie qt4, care nu este ușor de instalat în versiunile recente Ubuntu. Puteți utiliza de ex. această furculiță care s-a adaptat la qt5.

Cerințe preliminare:

sudo apt install libjpeg-dev zlib1g-dev libpng-dev libtiff-dev libboost-dev libxrender-dev libboost-all-dev

Instalare:

git clone https://github.com/victl/scantailor
cd scantailor
cmake .
face
sudo make install

Disclaimer: nu cunosc întreținătorul acestei furci și nu pot spune nimic despre siguranța versiunii sale.


Altă opțiune ar fi de folosit Scantailor avansat. Îl puteți instala prin snap ...

sudo snap install scantailor-advanced

... sau flatpak.

... sau prin ppa.

sudo add-apt-repository ppa:alex-p/scantailor
actualizare sudo apt
sudo apt install scantailor # sau scantailor-advanced

Test rapid:

introduceți descrierea imaginii aici

drapel br
Am găsit o soluție care funcționează direct pe fișiere pdf și am postat-o ​​de-a lungul răspunsului meu „complementar”.
Puncte:2
drapel br

Ca soluție directă pe PDF (fără extragere manuală a imaginii):

Folosind ocrmypdf pentru a restabili OCR (după cum este menționat la sfârșitul documentului complementar parte a acestui răspuns) Am observat că ocrmypdf -h arată o opțiune care suna exact ca ceea ce este întrebat:

--remove-background Încercați să eliminați fundalul din paginile gri sau color, setându-l pe alb

PDF-ul inițial avea deja OCR, ceea ce dă o eroare dacă nu se folosește una dintre următoarele opțiuni:

-f, --force-ocr Rasterizează orice text sau obiecte vectoriale de pe fiecare pagină, aplică OCR și salvează rezultatul raster (aceasta rescrie PDF-ul)

sau

-s, --skip-text Omite OCR pe orice pagină care conține deja text, dar include pagina în rezultatul final; util pentru PDF-urile care conțin o combinație de imagini, pagini de text și/sau pagini OCR anterior

Aplicarea fiecăruia separat la unul dintre fișierele mele mari cu sute de pagini care aveau deja OCR a blocat procesul.

Cea mai bună soluție mi se pare mai intai tipăriți în pdf fișierul inițial (care elimină OCR), apoi faceți

ocrmypdf input.pdf output.pdf -l <LANG> --remove-background -v

Pentru engleză, the -l opțiunea nu este necesară. -v este pentru detalii detaliate în terminal.

PDF-ul rezultat este mai mare decât intrarea (din cauza --elimină-fondul opțiune): reduceți dimensiunea așa cum se spune mai jos.


Despre Scan Tailor, ca o completare a răspunsul principal

Chiar și pictograma ei ilustrează faptul că este destinat exact pentru ceea ce se cere aici:

![introduceți descrierea imaginii aici

Iată cum să utilizați Scan Tailor cu fișiere PDF:

  1. Extrageți toate paginile pdf ca fișiere imagine - deoarece acest instrument nu procesează pdf direct și are nevoie de imagini. Master PDF Editor poate face acest lucru, dar pe aparatul meu se blochează după extragerea a aproximativ 80 de imagini. Dar poate fi folosit în continuare prin setarea unui nou lot/gamă de pagini care urmează să fie extrase. (Modul PDF s-a prăbușit înainte de orice procesare). Ceea ce prefer după câteva încercări este o metodă CLI fiabilă, deși mai lentă, cu o comandă de genul: pdftoppm MY_PDF.pdf NUME -tiff - cum s-a spus Aici. â Alte variabile pot fi folosite în loc de tiff (care dă tif fișiere), de exemplu png sau jpeg. Vedeți aici un set de acțiuni din meniul serviciului Dolphin pentru diferitele opțiuni de extracție:
[Intrare pe desktop]
Tip=Serviciu
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=pdf;tif;jpeg;
X-KDE-Submeniu=Acţiune PDF: EXTRAGERĂ TOATE paginile
Pictogramă=aplicație-pdf

[Desktop Action pdf]
Nume=Extrage pagini ca pdf
Pictogramă=aplicație-pdf
Exec=bash -c 'pdf=$(pdftk "%u" burst); kdialog --title "Extrage pagini" --msgbox "Extras! $pdf";';

[Desktop Action tif]
Nume=Extrage pagini ca tif
Pictogramă=aplicație-pdf
Exec=bash -c 'f="%u"; pdf=$(pdftoppm "$f" "${f%%.*}" -tiff); kdialog --title "Extrage pagini" --msgbox "Extras! $pdf";';


[Desktop Action jpeg]
Name=Extrage pagini ca jpeg
Pictogramă=aplicație-pdf
Exec=bash -c 'f="%u"; pdf=$(pdftoppm "$f" "${f%%.*}" -jpeg); kdialog --title "Extrage pagini" --msgbox "Extras! $pdf";';
  1. Încărcați și procesați imaginile rezultate în Scan Tailor. Puneți fișierele de imagine rezultate într-un folder separat și adăugați acel folder sub Proiect nou>Director de intrare în Scan Tailor. (Am instalat acel program de la PPA, așa cum a spus într-un comentariu al lui @N0rbert sub răspunsul principal.) Unele pagini care conțin imagini reale și nu text ar putea arăta mai bine dacă pentru fiecare dintre ei este selectat „Scale de gri și culoare” în loc de „Alb-negru” implicit (însemnat aici pentru text). Rulați una câte una procedurile enumerate. Verificați paginile înainte de a rula ultima ("Ieșire").

introduceți descrierea imaginii aici

  1. Creați un nou pdf din imaginile rezultate. (Verificați mai întâi rezultatul tif fișierele sunt așa cum doriți.) Există multe modalități de a crea un nou pdf. Din nou, instrumentele GUI pe care le-am încercat foarte curând s-au prăbușit sau au dat rezultate ciudate, așa că prefer să pun rezultatul tif fișiere într-un folder separat și acolo rulați comanda img2pdf *.tif -o out.pdf - cum s-a spus Aici. (Acest lucru poate necesita denumirea/numerotarea corectă a fișierelor. Mai multe despre asta Aici.)

PDF-ul „personalizat” rezultat va fi mai mic decât cel inițial, dar procentul de reducere a dimensiunii variază în funcție de factori pe care îi ignor (dar îmi imaginez că paginile conținute în pdf-ul inițial ar trebui extrase â la pasul 1 â în formatul pe care îl au deja, cred jpeg și tif ar trebui folosit în loc de png; utilizare pdfimages -list your.pdf în terminal pentru a vedea detalii despre format, dpi și alte detalii înainte de procesare cu comenzile de mai sus și de mai jos).

PDF-ul final poate fi redus și mai mult cu o comandă ca:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Mai multe detalii despre asta, Aici.

Iată un set de acțiuni din meniul serviciului Dolphin bazat pe linkul de mai sus:

[Intrare pe desktop]
Tip=Serviciu
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=shrink;shrink0;shrink1;shrink2;
X-KDE-Submeniu=Acțiune PDF: SHRINK
Pictogramă=aplicație-pdf

[Desktop Action shrink]
Nume=Reduceți pdf la dimensiunea „imprimantei”, 300 dpi
Pictogramă=aplicație-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -sOutputFile="${f%.pdf}_printer.pdf" "$f"); kdialog --title "Shrink" --msgbox "Terminat! $pdf";';

[Desktop Action shrink0]
Nume=Reduceți pdf la dimensiunea „prepress”, 300 dpi
Pictogramă=aplicație-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="${f%.pdf}_prepress.pdf" "$f"); kdialog --title "Shrink" --msgbox "Terminat! $pdf";';


[Desktop Action shrink1]
Nume=Reduceți pdf la „dimensiunea cărții electronice, 150 dpi
Pictogramă=aplicație-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="${f%.pdf}_small.pdf" "$f"); kdialog --title "Shrink" --msgbox "Terminat! $pdf";';

[Desktop Action shrink2]
Nume=Reduceți pdf la dimensiunea „ecran”, 72 dpi
Pictogramă=aplicație-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/screen -sOutputFile="${f%.pdf}_smaller.pdf" "$f"); kdialog --title "Shrink" --msgbox "Terminat! $pdf";';

Am primit ceva ajutor de la acest raspunde si tu.


OCR (capacitate de căutare și copiere a textului) este pierdut în timpul procedurii de mai sus, dacă este prezent în pdf-ul inițial. Pentru a obține OCR, utilizați ocrmypdf input.pdf output.pdf pentru engleză, după cum s-a spus Aici. Pentru alte limbi, caută-le cu căutare apt-cache tesseract-ocrși instalați-le. Adăuga -l <LANG> la sfârșitul comenzii pentru anumite limbi; Mai mult Aici; vezi si numele lor Aici.

Iată o acțiune din meniul serviciului Dolphin pentru OCR românesc cu două opțiuni (una cu progres în terminal și nume de ieșire fix, cealaltă cu proces de fundal, dar cu nume de ieșire bazat pe intrare; aș dori să se bazeze atât procesul în terminal, cât și numele de ieșire. la intrare, dar nu știu cum; dacă cineva o poate face, vă rugăm să postați aici!). Pentru engleză, înlocuiți „română” și eliminați -l ron variabil:

[Intrare pe desktop]
Tip=Serviciu
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Acțiuni=ocr1;ocr2;
X-KDE-Submeniu=Acțiune PDF: aplică OCR
Pictogramă=aplicație-pdf

[Desktop Action ocr1]
Nume=Aplică OCR română (vezi progresul în terminal; numele de ieșire: ocr_ro.pdf!)
Pictogramă=aplicație-pdf
Exec=konsole --noclose -e ocrmypdf "%u" ocr_ro.pdf -l ron

[Desktop Action ocr2]
Nume=Aplică OCR română (proces de fundal: FĂRĂ terminal! intrare>nume ieșire)
Pictogramă=aplicație-pdf
Exec=bash -c 'f="%u"; ocrmypdf "$f" "${f%.pdf}_ocr.pdf" -l ron;'

(Extragerea și procesarea imaginilor, precum și „imprimarea ca pdf” elimină OCR, dar reducând dimensiunea cu ghostscript ca mai sus nu, astfel încât „strângerea” poate fi aplicată înainte sau după OCR.)

Puncte:1
drapel by

Doar instalați Gimp (de preferință folosiți appimage). Următoarele sunt opțiunile:

  1. Selectați Culoare>Prag și gata imaginea dvs. va fi alb-negru. căci pentru asta trebuie să o faci pentru fiecare pagină

A doua varianta 2) Selectați Imagine>Mod>Indexat>Utilizați paleta de 1 bit alb-negru

Orice număr de pagini pe care le-ar putea avea pdf-ul dvs. vor converti toate în alb-negru de 1 bit.

Editare pe 02.11.2021: conform interogării adresate de cipiricus

Iată pașii pe care îi urmez:

  1. Scanați paginile cu „scanare simplă” sau Xsane. (Am găsit că scanarea simplă funcționează mai bine color) SAU folosește pdf scanat deja disponibil.
  2. Fișier>deschideți SAU trageți și plasați fișierul pdf în GIMP. Aici trebuie să dați lățimea X înălțimea imaginii de care aveți nevoie. (Verificați ce dpi aveți nevoie 150 dpi sau 300 dpi, oferiți valoarea lățimii în consecință)
  3. Acum fișierul pdf cu mai mult de 1 pagină deschis ca straturi.
  4. Accesați Imagine>Mod>Indexat>Utilizați paleta de 1 bit alb-negru
  5. Acum export pdf-ul folosind File> "Export As"
  6. Verificați dacă fiecare pagină de pdf exportată este conform cerințelor. Dacă nu, procesez individual fiecare pagină defectă cu următoarea metodă: a) Selectați Imagine> Mode> Grayscale b) (Dacă există prea mult gri/zgomot pe pagină) Selectați Culoare> Expunere și ajustați după nevoie. c) Selectați Culoare> Prag și gata imaginea dvs. va fi alb-negru. căci pentru aceasta trebuie să o faci pentru ca fiecare pagină defectă să se potrivească cu calitatea cerută. d) Acum inserez această pagină editată în acest strat de straturi de fișiere pdf originale și șterg stratul de pagină defect. și Exportați din nou pdf. Sper că acest lucru va ajuta.
drapel br
Vrei să spui că cu a doua opțiune pot fi selectate și procesate sute de pagini/imagini?
Ajay avatar
drapel by
Da, de fapt, în a doua opțiune nu este nevoie să selectați pagini. Veți schimba doar culoarea de la RGB sau Gri sau CMYK la 1 bit Alb-negru. deci vor fi doar două nuanțe negru sau alb Exact ca o fotocopie.
drapel br
În mod clar, doar a doua opțiune poate conta aici (procesarea fiecărei pagini în 400+ pagini pdf-uri nu este posibilă). Ați putea detalia puțin mai mult opțiunea 2? cum procesez pdf-ul? Ar trebui să fie extrase mai întâi paginile ca imagini? Sau ar trebui pdf-ul să fie deschis ca atare în Gimp?
Puncte:1
drapel tr

Am un rezultat destul de bun folosind imageMagick și următorul script http://www.fmwconcepts.com/imagemagick/shadowhighlight/index.php

Iată rezultatul utilizând următorii parametri:

./shadowhighlight -ma 100 -sa 100 -ha 00 -hw 0 -bc 20 inputFile.png OutputFile.png

introduceți descrierea imaginii aici

drapel br
Adică poți folosi scanarea simplă pentru a introduce imagini digitale deja existente?
drapel tr
Ho deci nu cauti un program de scaner ci un software de automatizare de procesare a imaginii. Dacă da, aruncați o privire pe https://imagemagick.org/ va face treaba, dar va trebui să găsiți setările potrivite.
drapel br
putem aplica acea comandă la sute de pagini în același timp?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.