लिनक्स में कमांड लाइन से ओसीआर का उपयोग कैसे करें?


30

मेरे पास स्कैन किए गए पुस्तक पृष्ठों के कई हजार पृष्ठ हैं। प्रत्येक पृष्ठ को JPG के रूप में व्यक्तिगत रूप से सहेजा जाता है। लेखन स्पष्ट है, लेकिन फ़ॉन्ट अलग-अलग हैं, और पृष्ठों में चित्र और चित्र शामिल हैं।

मुझे प्रत्येक JPG फ़ाइल में दिखाई देने वाले सभी शब्दों की एक सूची बनाने की आवश्यकता है। क्या छवि को स्कैन करने के लिए कमांड लाइन टूल है जो दिखाई देने वाले शब्दों को सूचीबद्ध करता है? इसके लिए एकदम सही स्कैनिंग की जरूरत नहीं है, बस एक अनुमान है।


github.com/tesseract-ocr/tesseract/wiki/Command-Line-Usage - ocrmypdf के पीछे इंजन है कि, और सामान्य रूप में, आप अपने सेटअप में कम चरणों के लिए अनुमति देगा।
ओकाद


2
डुप्लिकेट थोड़ा पुराना है, neweer सामान मौजूद हो सकता है। मैं खुले में मतदान करूंगा।
आर्केमोर

जवाबों:


25

tesseract शायद यहाँ सबसे ज्यादा इस्तेमाल किया जाने वाला घोल है। यह अधिकांश पैकेज रिपॉजिटरी में उपलब्ध है, जैसे,

sudo apt install tesseract-ocr

और के साथ इस्तेमाल किया जा सकता है

tesseract input.png out.txt

19

स्थापित करें imagemagick, pdftotext( poppler-utilsकुछ पैकेज प्रबंधकों के नाम वाले पैकेज में पाया गया ) और ocrmypdf । उत्तरार्द्ध एक तेज़ है (ocr बहुत सी सीपीयू लेता है, और यह आपके सभी कोर का उपयोग करने के लिए कॉन्फ़िगर किया गया है), ओपन-सोर्स और अक्सर ओसीआर सॉफ़्टवेयर का अद्यतन किया गया टुकड़ा। यह दृष्टिकोण संभवतः ओवरकिल है क्योंकि यह वास्तव में सिर्फ एक शब्द को लेबल करने के बजाय प्रत्येक शब्द को एक स्ट्रिंग निर्दिष्ट करने की कोशिश करता है, लेकिन मुझे सामान्य रूप से ओपनसोर्स ओसीआर सॉफ्टवेयर का उपयोग करने में अच्छा और आसान खोजने में बहुत परेशानी हुई है। फिर, उस निर्देशिका में जहाँ आपने अपने सभी JPG को सहेजा है:

$ convert *.jpg pictures.pdf
$ ocrmypdf pictures.pdf scanned.pdf
$ pdftotext scanned.pdf scanned.txt
$ wc -w scanned.txt

2
fwiw, यह नीचे उल्लेखित Tesseract का उपयोग करता है।
निर्वासित

ocrmypdfमेरा दिन बना
हर रोज अंतरिक्ष यात्री

पहले पीडीएफ में बदलने का विचार सिर्फ नासमझ है। मैं सिर्फ एक jpg फाइल क्यों नहीं कर सकता और कुछ कच्चा पाठ निकाल सकता हूँ?
माइकल

आप अपने लिए सभी कमांड लाइनों को करने के लिए एक bash फ़ाइल का उपयोग कर सकते हैं।
प्रोजेक्टम्ब जू

7

Upscale छवि file.png 480%, greyscale में बदल, सफेद के साथ backfill, तेज और फिर tesseract OCR का उपयोग कर निकालें। यह मेरे लिए ज्यादातर समय अच्छा काम करता है, बहुत बड़े फोंट को छोड़कर, और काले रंग पर सफेद होता है। यदि फोंट बहुत बड़े हैं केवल 200% या 300% अपस्केल।

 convert -colorspace gray -fill white  -resize 480%  -sharpen 0x1  file.png file.jpg
 tesseract file.jpg file

परिणाम file.txt में है।


यह मेरे लिए छोटे फ़ॉन्ट आकार के साथ गैर-अंग्रेजी पाठ के एक बहुत छोटे टुकड़े के साथ काम किया है। गजब का।
एवियो


0

टी एल; डॉ

for i in /path_to/*.jpg;do ./myocr.sh $i $(basename $i .jpg);done

#!/bin/bash
# PROGRAM=myocr.sh
if [ "$1" ] && [ -e "$1" ]; then
  TMPF=$(mktemp myocr.sh.XXXXXXXX.tif)
  DEST="$2"
  if [ ! "$DEST" ]; then
    DEST="${1%.*}.txt"
    if [ -e "$DEST" ]; then
      echo "$DEST already exists; please provide a new textfile name" >&2
      exit 1
    fi
  fi
  /usr/bin/convert "$1" -colorspace Gray -depth 8 -resample 200x200 -flatten -alpha Off $TMPF \
  && /usr/bin/tesseract $TMPF "$DEST"
  EX=$?
  /bin/rm -f $TMPF
  [ $EX -eq 0 ] && [ "$TERM" ] && echo "created $DEST"
  exit $EX
else
  echo "Usage: $0 imagefile [textfile]" >&2
  echo " creates a plain text file with the text found in imagefile" >&2
  exit 1
fi

स्रोत: https://help.ubuntu.com/community/OCR

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.