ファイルマネージャのコンテキストメニューのtesseractスクリプトの作成

ファイルマネージャのコンテキストメニューのtesseractスクリプトの作成

ファイルマネージャのコンテキストメニュースクリプトは、時々GUIユーティリティを使用するよりも速く実行できます。したがって、初歩的なスクリプト技術にもかかわらず、私は長い間Dolphin、Nautilus、およびNemoファイルマネージャで数十のシンプルで複雑なスクリプトを使用してきました。しかし、今回は、選択した画像ファイルにOCRを使用する非常に単純なループに閉じ込められています。正八砲体存在するイルカ、他の多くのスクリプトで動作します。

for filename in "${@}"; do
    tesseract -l eng "$filename" "${filename%.*}"
done

これは通常、次のように選択した画像(または選択した各画像)に対して実行する必要があります。これは端末で実行され、「image.txt」というテキストファイルを提供するコマンドです。

tesseract -l eng "image.png" "image"

どんなアイデアがありますか? ? ?

ベストアンサー1

私の考えでは、これがバグのためかもしれないと思います。正八砲体。したがって、代替ソリューションは次のようになります。

for filename in "${@}"; do
name="${filename%.*}"
ext="${filename##*.}"
output="${name}-alpha.${ext}"
convert "$filename" -alpha off "$output"
mv "$output" "$filename"
dpi="$(identify -units "PixelsPerInch" -format "%x\n" "$filename" | xargs printf "%.*f\n" "0")"
ocrmypdf -l eng --image-dpi "$dpi" "$filename" "${name}.pdf"
pdftotext -q "${name}.pdf"
ocr_txt="$(cat "${name}.txt" | sed -e "s///g" -e "s/\t/ /g" -e "s/  / /g" -e "/^\s*$/d")"
kdialog --title "Image OCR Text" --msgbox "$ocr_txt"
rm "${name}.pdf" "${name}.txt"

完璧

これにより、ocrmypdfに必要な透明度(アルファ)チャンネルが削除されます。より良い結果を得るには、画像dpi解像度を渡し、ocrmypdfを使用して画像をOCRテキストレイヤーを含むPDFに変換し、最後にダイアログボックステキストに表示します。 。

おすすめ記事