如何在单个单词处拆分文本屏幕截图?

How to split screenshot of text at individual words?

我有一行文字的截图,像这样:

文字是白底黑字。 ImageMagick 是否有识别单词之间空格位置的命令?

它需要一个阈值,这样它就不会被各个字母之间小得多的空白所混淆。

目的是将图像拆分成单个单词的图片。示例图像将被拆分为 3 个图像:stack、over 和 flow。

您可以在 ImageMagick 中做到这一点,方法是使用形态学将每个单词中的字母混合在一起,这样每个单词都有一个黑色区域。然后使用连接的组件来获取它们的边界框。然后从边界框裁剪图像。

在 Unix 语法的 ImageMagick 6 中:

输入:

OLDIFS=$IFS
IFS=$'\n'
bboxArr=(`convert Whosebug.png +repage \
-morphology erode rectangle:9x100 +repage \
-threshold 0 -type bilevel \
-define connected-components:exclude-header=true \
-define connected-components:verbose=true \
-define connected-components:mean-color=true \
-connected-components 8 null: | grep "gray(0)" | awk '{print }'`)
IFS=$OLDIFS
num=${#bboxArr[*]}
echo $num
for ((i=0; i<num; i++)); do
bbox=${bboxArr[$i]}
echo "$i $bbox"
convert Whosebug.png +repage -crop $bbox +repage Whosebug_word_$i.png
done

结果: