파일 관리자 상황에 맞는 메뉴 스크립트는 때때로 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로 변환하고 마지막으로 이를 대화 상자 텍스트에 표시합니다. .