From faf2369a17e4f118f5c65fa3a7c5d954068e0757 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Sat, 21 Jan 2023 11:58:08 +0600 Subject: Feat(extraction): allow to work with other dirs --- .gitignore | 1 + extract_text.sh | 19 ++++++++++++------- remove_dups.py | 5 ++--- skipped_gibberish | 16 ---------------- 4 files changed, 15 insertions(+), 26 deletions(-) delete mode 100644 skipped_gibberish diff --git a/.gitignore b/.gitignore index 2539602..0e4adf2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ tutorial/ +skipped_gibberish diff --git a/extract_text.sh b/extract_text.sh index 7b7174c..bb22de2 100755 --- a/extract_text.sh +++ b/extract_text.sh @@ -2,12 +2,16 @@ set -e +currDir=$pwd framespath=${1:-} lang=${2:-deu} [ -z "$framespath" ] && echo "no framespath provided" && exit 1 -mkdir -p text result +parentDIR=$(dirname "$framespath") +textDIR="$parentDIR"/text +grayDIR="$parentDIR"/gray +mkdir -p ${textDIR} ${grayDIR} # split video on frames (every 90 seconds) # ffmpeg -i "$videopath" -r 0.011 frames/ffmpeg_%0d.jpg @@ -16,13 +20,14 @@ mkdir -p text result # lets say we dont know extention # ext=".jpg" + # convert each frame to grayscale then crop to text if any for img in "$framespath"/* do iname=$(basename "$img") - sub_img_name="frames/sub_${iname}" - sub_out="text/$(echo "$iname" | sed 's/.\(png\|gif\|jpg\|jpeg\|bmp\)//')" - magick convert "frames/$img" -chop 220x0 -gravity East -chop 220x0 \ + sub_img_name=$"${grayDIR}/sub_${iname}" + sub_out="$textDIR/$(echo "$iname" | sed 's/.\(png\|gif\|jpg\|jpeg\|bmp\)//')" + magick convert "$img" -chop 220x0 -gravity East -chop 220x0 \ -gravity South -chop 0x50 \ -colorspace Gray -resize 600x "$sub_img_name" # dpi=$(magick identify -format '%x' $sub_img_name) @@ -37,10 +42,10 @@ do done resultfile=$(basename "$framespath") -find text -type f | sort -n -k 1.13,1.15 | xargs cat > "../result/${resultfile}.txt" -cd ../ +find "$textDIR" -type f | sort -n | xargs cat > "${parentDIR}/${resultfile}.txt" +cd $currDir -./remove_dups.py text "result/${resultfile}_clean" +./remove_dups.py "$textDIR" "${parentDIR}/${resultfile}_clean" # rm -rf text # rm -rf frames diff --git a/remove_dups.py b/remove_dups.py index 706393c..30afed3 100755 --- a/remove_dups.py +++ b/remove_dups.py @@ -85,11 +85,10 @@ def sortKeyFunc(s): if __name__ == "__main__": files = glob.glob(f"{directory}/*") - print(files) # files.sort(key=sortKeyFunc) prev_page = [] - page_sep = "-"*60 + "\n" + # page_sep = "-"*60 + "\n" with open(outname, "w") as wf: for filename in files: @@ -99,7 +98,7 @@ if __name__ == "__main__": lines.reverse() lines = clear_start(lines) lines.reverse() - lines.append(page_sep) + # lines.append(page_sep) # compare with prev data new_page = get_uniq_lines(prev_page, lines) diff --git a/skipped_gibberish b/skipped_gibberish deleted file mode 100644 index c92aa1d..0000000 --- a/skipped_gibberish +++ /dev/null @@ -1,16 +0,0 @@ -Die Halb elf-Göttin -Die Zeit lief ab. -Es g1bt nur eine begrenzte Anzahl von Personen, die cs bewegen Können. Der -er es gibt cinige Dinge, bei denen wir keine Komprom1sse eingehen können, -Königreichs zunehmen -Menschen zu helfen, geschaffen wurde, 51c geheilt werden Konnte, Indem man -Ich verstehe die Idee, -Die Iheo kratie hat viele dieser geheimen Techniken. -einfacher zu Fandhaben wäre, sber "Wir haben 6S nach mehreren hundert Jahren -Untoten überall sind -Es war nicht überraschend, als ich mich an die Informationen erinnerte, die -aus Threm Unternehmen herauszuholen, darin besteht, cin guter Geschäftsmann zu -wieder zu virtuellen Feinden. -Der "Zentralregierung sollte das obere Knie gegeben werden. -ETTennatTon widmen konnten. -dem Lazy Black Book angehörte, die Zurückgebliebenen beschützen und sie führen, -- cgit v1.2.3