我想看看是否有人知道我可以上传图片的浏览器(甚至可能是Java)工具,它会努力找到不同的字符并将它们裁剪成单个图像。
例如,在此图片中,我希望该工具能够找到三个唯一的符文符号并将其保存到单个文件中。它并不是真正的OCR,因为我们不能解释角色是什么,我们只需要认识到它们之间有一点空白,所以让我们把它拿出去并保存它们
我的公司有"你是程序员,所以你应该能做到这一点,对吗?"态度,我需要提供解决方案或替代要求。我知道有很多工具可供用户手动裁剪,但他们专门寻找一种自动化工具来减少用户活动量。
如果有一个(最好是Java)服务器端工具,我也一定愿意接受。
任何jQuery,Vue甚至Java等建议都将不胜感激。
更新: Imagemagick根据以下@ fmw42的响应工作,但我们找到了另一个名为Marvin图像处理框架的工具,它正在做我们需要的工作和它的原生Java。 / p>
答案 0 :(得分:1)
在ImageMagick中,有一个连接组件工具可以通过一些unix脚本执行您想要的操作。仅当字符之间存在白色分隔时才有效。我相信OpenCV也有类似的东西。
输入:
让我们从连接组件开始,以显示返回的文本数据:
convert rUNOP.png -alpha off -threshold 50% -type bilevel \
-define connected-components:verbose=true \
-connected-components 4 null: | sed 's/^[ ]*//'
Objects (id: bounding-box centroid area mean-color):
0: 236x139+0+0 118.2,71.3 30849 gray(255)
2: 36x50+27+11 39.7,30.5 630 gray(0)
3: 29x50+90+11 103.3,34.3 580 gray(0)
1: 23x50+155+9 163.3,33.3 502 gray(0)
4: 13x24+160+21 165.0,32.9 243 gray(255)
现在将它与一些脚本结合起来,找到那些带有黑色即灰色(0)颜色的条目,并提取边界框并用它来裁剪输入图像。
OLDIFS=$IFS
IFS=$'\n'
arr=(`convert rUNOP.png -alpha off -threshold 50% -type bilevel \
-define connected-components:verbose=true \
-connected-components 4 null: | sed 's/^[ ]*//'`)
num=${#arr[*]}
IFS=$OLDIFS
for ((i=0; i<num; i++)); do
bbox=`echo ${arr[$i]} | cut -d\ -f2`
color=`echo ${arr[$i]} | cut -d\ -f5`
if [ "$color" = "gray(0)" ]; then
convert rUNOP.png -crop $bbox +repage rUNOP_crop_$i.gif
fi
done
答案 1 :(得分:0)
没有图书馆可以为我所知道的裁剪。解决这个问题的一种方法是使用imagemagick裁剪图像,但你必须找出裁剪的位置。
祝你好运:)