分享完美解决批量化切割图片中文字的方法(附切割工具)

  • s
    soomal
    回复100#euzen
    嗯,图片中上下空白区域用软件可以批量切除,图片的高度和宽度可以调整到上次设定的范围内,大概设置在多少可以处理?
  • e
    euzen
    回复101#soomal


    2020-05-03 07_10_50-Window.png

    下载贴中附件,增加了相应配置项。
    上图中①对应配置文件cutimg.conf中的 black_edge_up_height ,可以打开你的源图,在编辑软件中得到这个高度约为600
    ②对应 执行程序时输入的第二个参数,分割图片的高度,实际约为400
    ③对应配置文件中的 min_h_cut_width,分割图片的最小宽度,约为500
    还有一个black_edge_bottom_height在图中没有体现,实际也约为600
    配置文件"format":"tiff" 可以直接输出tiff黑白格式。

    cutimg.zip(4.94 MB)

    设置好后可以直接解决问题,无需另外对源图作处理。
  • e
    euzen
    pix.png
    得到上述数字,我都是使用系统自带的画图,用“选择”工具选要分割的部分,下面会显示出宽和高的数值,多选几个平均一下,判断后写入到配置文件即可。
  • s
    soomal
    回复103#euzen
    太好了,非常感谢您的用心设计,图片很多,麻烦的是不同图上的字符数数量不等,需先将不同规格的图归下类来提高切割识别准确率,做完来汇报。

    不知有无自动化识别不同大小字符而不用反复修改数值的可能性,目测手动输入数值后效果趋于完美!
  • e
    euzen
    回复104#soomal
    应该可以多次扫描同一图片,取平均值的方法确定要分割的大小。但文字的多样性,需考虑的细节不少,超出一个辅助小工具软件的范围了。 iOS fly ~
  • o
    o0o0oo0o0o
    Mark
    。。
  • 7
    77880099
  • s
    shannon_sdu
    Mark py代码,另外请教一下,手写汉字那种好切割吗? iOS fly ~
  • e
    euzen
    回复108#shannon_sdu
    只要文字大小比较平均,字与字之间的间隔分明,用投影法都比较方便识别分割,与手写体,印刷体无关。 iOS fly ~
  • 古押衙
    马克 iOS fly ~
  • t
    tauercky
    回复109#euzen


    大牛帮我看看,这样的书中留有书写空白,我想打印,但是会得到很厚的一摞纸。希望PDF导出成图片后,把大段的空白处理掉,题与题之间更紧凑的拼在一起(和原来行距差不多就行),这样不是会得到宽度和原书一样,但是高度很小的图片吗,再把这些图片按原顺序适当的拼接成一页纸的高度

    pdf样本.pdf(1.7 MB)

    以前问过,没有合适的解决方案https://www.hi-pda.com/forum/viewthread.php?tid=2007033
    https://www.hi-pda.com/forum/viewthread.php?tid=2007036
  • e
    euzen
    回复111#tauercky
    删除空白并不困难,重排就比较麻烦,也有可能前几题并到前面一页了,最后一题放不下,结果还是要占一张纸,后面留白更多。
    另外扫描有透底的情况,对识别空白有干扰。 iOS fly ~
  • 林志颖
    马克,我要学py
  • s
    shannon_sdu
    OK,谢谢 iOS fly ~
  • s
    soomal
    回复111#tauercky
    没有规律自动重排,难以自动化。

    数量不多,手工重排工作量不大,pdf导成TIFF图片,用IrfanView打开TIF,手动选框复制,打开Word选粘贴,挨个贴下来,快的很!
  • 3
    321344755
    请问得到这样的效果图是什么原因呢?横向没有切割。我把配置文件设置成了这样:{
    "min_h_cut_width":260,
    "black_edge_up_height":300,
    "black_edge_bottom_height":367,
    "name_direction":"right",
    "format":"jpg",
    "quality":100
    }



    回复68#euzen
  • 3
    321344755



    请问大佬希望得到这样大小的分割图片应该怎么设置呢?





    回复112#euzen
  • 3
    321344755
    试了下,我的需求直接用imagemagick就可以完成。
    先用convert命令切边,然后用magick命令等分图片。
    大佬的py看起来好厉害,每次学py都是入门到放弃。
  • m
    myfox1900
    马克马克小尾巴~
  • e
    etoad
    mark一下 iOS fly ~
  • e
    euzen
    回复117#321344755
    如果可以提供源图,可以分析一下。 iOS fly ~
  • e
    euzen
    回复118#321344755
    Python刚学不久,核心代码和原理都是上网搜索的。主要是Python的库功能丰富易用,能简单解决好多问题。 iOS fly ~
  • d
    dong
    图片识别马克吐温
  • t
    tonie
    马克。。。
  • s
    soomal
    回复122#euzen
    新学就能这么厉害了:+1:可以分享您学PY入门方法吗?
  • e
    euzen
    找个自己有兴趣的小项目,然后就是搜索教程和资料。 iOS fly ~
  • 警察蜀黍
    强力马克py
  • s
    suifeng123
    源码看完了,写的不错。

    但是有个问题,投影法对于有交错的字块,就无法切割了。

    这类问题该如何解决呢?
  • 3
    321344755
    回复122#euzen


    原图是这样的,辛苦大佬了。
  • X
    XwX
    谢谢分享。

    地板精神。
  • d
    deepdream
    受启发了
    谢谢各位楼主
  • v
    v4xyz
    mark 有点意思
  • e
    euzen
    回复129#321344755

    原图扫的时候有些噪点,如红色框内的。而且压缩得有点厉害,字的边缘有点模糊。但这些影响其实并不大,因为字和字,字和部首之前分隔还是很明显的。
    主要问题是,你想要得到下图橙色框的预期结果,但按之前程序中使用的投影法,先竖向分割,绿色线之间是三个不同的部分。原先的程序是无法得到你想要的结果的。
    要得到你想要的结果,必须修改程序以适配需求。比如直接中间按黑线大概位置分成左右两部分,然后再水平方向分割。

    2020-05-08 23_00_13-1.png
  • d
    dong
    这才是地板精神
  • 8
    888837
    mark
  • s
    soomal
    回复102#euzen


    今天刚开始实验,按顶部黑线高度250,底部黑线高度200,设置下来,最后一行字符没有自动切,直接漏掉了,这是怎么回事,是上面参数写的不对吗?

    4DBA95D1-A420-49DC-94CD-5BD794823DE6.tiff(103.15 KB)

  • s
    soomal
    回复102#euzen
    晚上处理了一批图片,都是漏掉了最下面一行字符,有什么办法设置吗?
  • s
    soomal
    回复102#euzen

    这两种图的切割参数改怎么设置比较好?

    02.tif(106.88 KB)
    03.tif(87.97 KB)
  • e
    euzen
    回复137#soomal


    不知道是什么原因,可能这前上传的某个版本有些问题,用现在的版本测试了一下没有问题。我再上传一下最新的吧。分割你给的图片的配置写在cutimg.conf里。现在的版本加多了一个参数,height_rate。
    主要作用是定义一个高度的大小范围,比如height_rate = 1.1 ,你命令行里填入的高度是400,则范围在400 到440 (400*1.1)之间浮动。这样分割会更加匹配些。

    cutimg.zip(4.94 MB)

    上面的程序配合cutimg.conf,分割效果如下:
  • e
    euzen
    用下面的配置分割效果如下。刚才上传的配置black_edge_up_height设置得小了些,用这一贴里的配置数据更好。时间过去比较久,有些参数都忘记了意义了。
    命令行里高度参数是 400
    1. {
    2. "min_h_cut_width":430,
    3. "height_rate":1.1,
    4. "black_edge_up_height":250,
    5. "black_edge_bottom_height":250,
    6. "name_direction":"right",
    7. "format":"tiff",
    8. "quality":100
    9. }
    复制代码

  • s
    soomal
    回复140#euzen


    太棒了!实现了自动调节,这个参数大赞!目测切割效率大幅度提高!
    现在开始试验.......
  • s
    soomal
    回复140#euzen


    或许是新增加的高度比率参数起作用了,切割匹配度太高了,很多整页符号切割下来几乎是完美的!功德无量!