Skip to content

Commit 48cd2b5

Browse files
committed
ocr: reworked to use graphicsmagick instead of imagemagick
1 parent 8494490 commit 48cd2b5

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

Configs/.local/lib/hyde/screenshot.sh

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ save_dir="${2:-$XDG_PICTURES_DIR/Screenshots}"
5151
save_file=$(date +'%y%m%d_%Hh%Mm%Ss_screenshot.png')
5252
annotation_tool=${SCREENSHOT_ANNOTATION_TOOL}
5353
annotation_args=("-o" "${save_dir}/${save_file}" "-f" "${temp_screenshot}")
54-
tesseract_languages="${SCREENSHOT_OCR_TESSERACT_LANGUAGES:-"eng"}"
54+
tesseract_default_language=("eng")
55+
tesseract_languages="${SCREENSHOT_OCR_TESSERACT_LANGUAGES:-$tesseract_default_language}"
56+
tesseract_languages+=("osd")
5557

5658
if [[ -z "$annotation_tool" ]]; then
5759
pkg_installed "swappy" && annotation_tool="swappy"
@@ -98,19 +100,20 @@ ocr_screenshot() {
98100

99101
# execute grimblast with given args
100102
if "$LIB_DIR/hyde/grimblast" "${extra_args[@]}" copysave "$mode" "$temp_screenshot"; then
101-
if pkg_installed imagemagick; then
102-
magick "${temp_screenshot}" \
103+
if pkg_installed graphicsmagick; then
104+
gm convert "${temp_screenshot}" \
103105
-colorspace gray \
104-
-contrast-stretch 0 \
105-
-level 15%,85% \
106106
-resize 400% \
107-
-sharpen 0x1 \
108-
-auto-threshold triangle \
109-
-morphology close diamond:1 \
110-
-deskew 40% \
111-
"${temp_screenshot}"
107+
-median 2 \
108+
-sharpen 1 \
109+
-convolve "0,0,1,0,0;0,1,1,1,0;1,1,1,1,1;0,1,1,1,0;0,0,1,0,0" \
110+
-normalize \
111+
-lat 15x15+5% \
112+
-monochrome \
113+
-despeckle \
114+
"${temp_screenshot}"
112115
else
113-
notify-send -a "HyDE Alert" "OCR: imagemagick is not installed, recognition accuracy is reduced" -e -i "dialog-warning"
116+
notify-send -a "HyDE Alert" "OCR: graphicsmagick is not installed, recognition accuracy is reduced" -e -i "dialog-warning"
114117
fi
115118
tesseract_package_prefix="tesseract-data-"
116119
tesseract_packages=("${tesseract_languages[@]/#/$tesseract_package_prefix}")
@@ -121,12 +124,11 @@ ocr_screenshot() {
121124
return 1
122125
fi
123126
done
124-
IFS='+' tesseract_languages=${tesseract_languages[*]}
125-
unset IFS
127+
tesseract_languages_prepared=$(IFS=+; echo "${tesseract_languages[*]}")
126128
tesseract_output=$(tesseract \
127129
--psm 6 \
128130
--oem 3 \
129-
-l ${tesseract_languages} \
131+
-l ${tesseract_languages_prepared} \
130132
"${temp_screenshot}" \
131133
stdout
132134
2>/dev/null
@@ -163,7 +165,7 @@ sc) #? 󱉶 Use 'tesseract' to scan image then add to clipboard
163165
;;
164166
esac
165167

166-
[ -f "$temp_screenshot" ] && rm "$temp_screenshot"
168+
[ -f "${temp_screenshot}" ] && rm "${temp_screenshot}"
167169

168170
if [ -f "${save_dir}/${save_file}" ]; then
169171
notify-send -a "HyDE Alert" -i "${save_dir}/${save_file}" "saved in ${save_dir}"

0 commit comments

Comments
 (0)