gpt4 book ai didi

image-processing - 以编程方式将扫描图像划分为单独的图像

转载 作者:行者123 更新时间:2023-12-04 08:30:56 24 4
gpt4 key购买 nike

为了提高 OCR 质量,我需要对扫描的图像进行预处理。有时我需要用几张图片(页面上的组件并且它们处于不同的角度 - 例如,一次扫描一些纸质文档)对图像进行 OCR,例如:

enter image description here

是否可以自动以编程方式将此类图像划分为包含每个逻辑文档的单独图像?例如使用 ImageMagick 之类的工具或其他工具?是否有针对此类问题的解决方案/技术?

最佳答案

在 ImageMagick 6 中,您可以使图像模糊到足以使文本重叠和阈值,以便文本框每个都是白色背景上的一个大黑色区域。然后您可以使用连接组件来查找每个单独的黑色灰色 (0) 区域及其边界框。然后使用边界框值为每个这样的区域裁剪原始图像。

输入:

enter image description here

Unix 语法(将模糊调整到足够大以保持文本区域为纯黑色):

infile="image.png"
inname=`convert -ping $infile -format "%t" info:`
OLDIFS=$IFS
IFS=$'\n'
arr=(`convert $infile -blur 0x5 -auto-level -threshold 99% -type bilevel +write tmp.png \
-define connected-components:verbose=true \
-connected-components 8 \
null: | tail -n +2 | sed 's/^[ ]*//'`)
num=${#arr[*]}
IFS=$OLDIFS
for ((i=0; i<num; i++)); do
#echo "${arr[$i]}"
color=`echo ${arr[$i]} | cut -d\ -f5`
bbox=`echo ${arr[$i]} | cut -d\ -f2`
echo "color=$color; bbox=$bbox"
if [ "$color" = "gray(0)" ]; then
convert $infile -crop $bbox +repage -fuzz 10% -trim +repage ${inname}_$i.png
fi
done

文字 list :
color=gray(255); bbox=892x1008+0+0
color=gray(0); bbox=337x430+36+13
color=gray(0); bbox=430x337+266+630
color=gray(0); bbox=202x147+506+252

tmp.png 显示模糊和阈值区域:

enter image description here

裁剪图像:

enter image description here

enter image description here

enter image description here

关于image-processing - 以编程方式将扫描图像划分为单独的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48557612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com