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

  • a
    am99
    回复50#soomal
    我现有方案针对书法的。对你的图片效果不好。因为你的样本字高比较不均匀需要特别调參,正如我上文提高的几个因素 iOS fly ~
  • 懒散的牛
    马克。。py好厉害 ios fly~
  • H
    Hijhon
    牛逼。
  • s
    soomal
    回复47#0fifa


    软件半天没有调试出来, 现在着急用ps速度慢,效率低。
    如果你的方案能自动切割又快又完美的话,有空的话帮忙切一下44楼文档或50楼原图,很期待最终效果!
  • 0
    0fifa
    回复54#soomal

    晚上到家试试,感觉五六十张图片不至于此吧?
  • 0
    0fifa

    啥设置没动,这样能用吗?
  • 0
    0fifa
    竖着的搞不定,程序区分不了符和字。
  • e
    euzen
    晚上值班,花了点时间优化了一下Python语句,可以比较完美地分割了。



  • e
    euzen
    实际操作还是会有意外情况,楷体(?)的文字,比如“言”这样自身有空白的,会让分割的判断失效。
    需要调整高度的参数,进行最少两次分割才能得到一页中所有正确的预期。

  • 0
    01802
    CorelDRAW 位图转矢量 iOS fly ~
  • p
    pllnxr0ee
    技术大佬很多啊,马克一下
  • e
    euzen
    分别将高度设为300,340,两次得到的结果,综合一下就得到预期结果了。
    老i5 CPU上,分割一张高分图要2秒左右。

    cutimg_height300.zip(576.5 KB)

    cutimg_height340.rar(571.99 KB)
  • l
    linxlintt
    我也正好有需求,马克一记
  • s
    soomal
    回复62#euzen


    太棒了,效果完美啊,py好强大,得好好学习py。能否分享这段切割代码,44楼有源文档,帮分割一下?
  • s
    soomal
    回复57#0fifa


    看着分割的不错,怎么加载图片分割的?分割出来的文件带有顺序编号吗?
  • s
    soomal
    回复59#euzen


    下午用漫画工具切边,半自动切,一次只能切一下,要反复切,搞到现在,切出来很多字有残缺,需要校对再修改重切,工作量巨大,哎,寻求py帮助。
  • 藤五
    估计是后面忘了前面编过这个字,又发明了一个写法 iOS fly ~
  • s
    soomal
    回复68#euzen


    感谢!太强大了,现在实验,支持TIFF,JPG,PNG,BMP,GIF这些图片格式吗?
  • s
    soomal
    操作错误,继续
  • e
    euzen
    回复70#soomal


    jpg和bmp 测试过没问题,其他应该也可以,都是主流格式。
    打包程序还有一个分割宽度,是以你上传的pdf的图片为基准设定死了(如第一页图分辨率是2424x2712)。如果你的源图不是和pdf上的一致,可能会有问题,需要重新修改及打包程序以,增加这个参数为可调。
  • s
    soomal
    回复72#euzen


    试了主流图片格式都支持,现在切完默认从左往右编号,切古书的话编号刚好反了,古书是从右往左阅读,在哪里能修改成从右往左编号?
    没有编号修改之前,想了一个办法,切之前图片水平翻转,切完再水平翻转过来。整体自动切的字符接近完美,效率高到飞起来,有些不适配的字符,再单独适配。
  • e
    euzen
    回复73#soomal

    cutimg.zip(4.94 MB)
    增加了一个配置文件cutimg.conf,可以在里面指定分割文件命名的方向。还有就是可以指定分割文件的最小宽度,以适应不同分辨率的源图。
    1. {
    2. "min_h_cut_width":180,
    3. "name_direction":"right"
    4. }
    复制代码
  • s
    soomal
    回复74#euzen


    源文件用了体积小的TIF无损黑白图片格式,输出的JPG图中产生了一些噪点,输出的图片格式可以选择吗?比如保存成TIF这种体积小的黑白图专用无损格式
  • e
    euzen
    回复75#soomal


    只是直接调用pillow控件生成图片,指定后缀就生成文件了。tiff格式好像比较复杂的吧,还分彩色,黑色,多页。好像没有相关参数指定格式。
    你可以参考一下
    1. img_corp.crop([x_min,h_split_lines[i],x_max,h_split_lines[i+1]] ).save('{}/{}_{}.jpg'.format(sav_path,v_count,i))
    复制代码
    这句,分割并保存文件,将.jpg换成.tiff
  • z
    zengdragon
    大牛有空也帮我整整。
    我的比较简单,就是每一页左右分割,然后再文字识别。
    总共500页左右。但是扫描质量不好,有时候中间这条线是歪的,单纯的漫画分割并不合用。
    会将白发倚庭树
  • e
    euzen
    回复77#zengdragon
    你这个应该用ocr软件了吧,有倾斜校正功能。 iOS fly ~
  • s
    soomal
    回复76#euzen


    列宽和方向、保存格式,是直接在“cutimg.conf”中修改或加入数值吗?
  • s
    soomal
    回复77#zengdragon


    页面切割和歪斜调整可以用ScanTailor这款预处理软件,能相当完美的处理,文档工整清晰去噪点,再用OCR识别软件,比较轻松的。
  • z
    zengdragon
    谢谢哈。我试试。 会将白发倚庭树
  • e
    euzen
    回复79#soomal

    tiff的深度支持需要编译libtiff库,我电脑上没有c编译器,暂时没这个条件处理了。
    你说的噪点问题,应该是jpeg压缩率造成的,缺省是75,质量比较差。在配置文件中加了个quality的设置,设为95或100,生成的图片质量就没问题了,再批量转tiff吧。
    cutImg.zip(4.94 MB)
  • s
    soomal
    回复82#euzen


    强!!无损保存JPG再转TIF可行! 另外后期再针对其他文档适配,调整列宽和编号方向等参数,在哪里设置,是在“cutimg.conf”中修改吗?
  • e
    euzen
    回复83#soomal


    是的,在cutimg.conf中修改,也只有三四个参数。否则需要在py源文件中修改。
  • e
    euzen
    有趣的项目果然是学习的动力,今天又学习到可变参数的使用方法,可以输出TIFF结果文件了。
  • c
    cxsfree
    马克吐温
    iOS fly ~
  • s
    soomal
    回复85#euzen

    换了一种图,把最小行距设置为350,切割命令 cutimg 43.tif 450,出现下面的错误提示是什么情况,如何适配?
    c:\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py:623: MatplotlibDeprecationWarning:The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and will be removed in 3.3.
    2536 2996
    Traceback (most recent call last):
    File "cutImg.py", line 181, in <module>
    NameError: name 'max_y1' is not defined
    [5240] Failed to execute script cutImg


  • s
    stevenflp
    厉害 iOS fly ~
  • 7
    729088672
    mark 切图
  • 虎啸川
    回复1#soomal


    关注
    分享完美解决批量化切割图片中文字的方法
  • 小菜花
    马克,批量化切割图,感谢分享HiPDA·NG
  • 8
    888837
    mark
  • h
    hxj629
    好贴 iOS fly ~
  • 西
    西狼
    d版精神!
  • j
    johnalex
    Mark iOS fly ~
  • x
    xhsec
    马克,学习
  • s
    soomal
    回复82#euzen
    有新图想要切,但图中需切割的高度和宽度不同,按上面参数设置后,出现错误,不知是什么原因?
  • j
    jmhqlw
    马克工具。
  • s
    soomal
    回复82#euzen

    想匹配下面的图,设置了行距和高,总是提示错误,该如何设置呢?

    5231EFEA-0938-45EC-B33A-6926900E170C.tiff(40.88 KB)
    FF4D7362-207F-4D3C-9F21-DE0E28595553.tiff(74.76 KB)
    B48B18C9-8859-43CB-A691-116CB8D27E0A.tiff(134.45 KB)
  • e
    euzen
    回复99#soomal
    上下黑边的高度 原来在程序中写死了,现在你这个图片的跟上次的相比,上边的高度明显不一样,超出了预调的数值,需要改动程序。 iOS fly ~