V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nowheretoseek
V2EX  ›  问与答

图片透视裁剪的需求怎么自动化?

  •  
  •   nowheretoseek · 2021-11-05 10:47:20 +08:00 · 1772 次点击
    这是一个创建于 1118 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有 1000 张从图书馆拍摄来的古籍照片,因为拍摄角度的原因,是上宽下窄并且有不少桌面背景,想批量裁剪好做成 pdf ,以方便后面录入、校对。拍成这样,一是可能不让影印,二是拍的人不太懂,没准备更好的拍摄设备和环境。

    Photoshop 透视裁剪好像没法自动化,一张张弄太麻烦,请教有什么好的方案。现在想到的是二值化后识别边缘获取四顶点坐标,但因为不是很规整的矩形,也不好直接截取,有什么工具可以进行透视裁剪吗?

    第 1 条附言  ·  2021-11-06 14:17:58 +08:00
    感谢各位的建议,反馈下最终的方案。

    我用 opencv 写了个脚本,循环显示每张图片,通过鼠标点击标记 4 个或 6 个顶点(双页情形),然后调用 getPerspectiveTransform 和 warpPerspective 两个函数,透视裁剪为 1 页或 2 页,效果还不错。

    考虑到每本拍摄情况都有差异,自动监测边缘可能更麻烦,且不够准确,所以没有完全自动化;不过照片数量有限,还是可以接受的。
    23 条回复    2021-11-06 14:20:14 +08:00
    sadfQED2
        1
    sadfQED2  
       2021-11-05 10:58:54 +08:00 via Android
    依稀记得 photoshop 好像有宏功能,看看能不能写个 photoshop 的批量脚本呢
    nowheretoseek
        2
    nowheretoseek  
    OP
       2021-11-05 11:12:30 +08:00
    @sadfQED2 可是 Photoshop 似乎没有自动检测裁剪位置的功能,而照片情况复杂,没法使用统一的位置,Photoshop 怕无能为力
    BurneJones
        3
    BurneJones  
       2021-11-05 11:21:33 +08:00 via iPhone
    手工制作,估计 10-20 天就做完了。还能大概看一遍😂
    sadfQED2
        4
    sadfQED2  
       2021-11-05 11:21:59 +08:00
    python+opencv 自己按规则裁剪呢
    sadfQED2
        5
    sadfQED2  
       2021-11-05 11:23:29 +08:00
    你可以发张实例图片看看,另外赞同 3 楼,1000 张照片可能人工裁剪比写代码还快一下
    nowheretoseek
        6
    nowheretoseek  
    OP
       2021-11-05 11:42:26 +08:00
    @sadfQED2 @BurneJones 量是不大,可我没时间搞,并且 Photoshop 一张张弄太伤神了。
    opencv 检测边缘不难,不过我不知道什么图像库可以根据边缘位置数据实现 Photoshop 那种透视裁剪,因为四顶点勾勒的肯定不是水平垂直的矩形,而是不规则梯形。

    照片可能有版权问题,打了个码 ![demo.JPG]( https://i.loli.net/2021/11/05/pRYuId6BngeWz2w.jpg)
    BurneJones
        7
    BurneJones  
       2021-11-05 11:52:05 +08:00 via iPhone
    @nowheretoseek 裁剪也可以试试其他工具。遇到这样的问题,先裁剪图片,因为我不会使用 photoshop ,所以我可能用白描、手机或电脑自带的裁剪,然后调整生成 PDF 。或者我可以把 1000 页照片排序后生成到一个 PDF 里面,然后修剪 PDF 。又因为有版权问题,不然也可以考虑付费让淘宝店人工做完 PDF 给你😂
    BurneJones
        8
    BurneJones  
       2021-11-05 11:53:43 +08:00 via iPhone
    效果应该达不到楼主要的效果,不过差不多可以凑合看
    0o0o0o0
        9
    0o0o0o0  
       2021-11-05 11:55:14 +08:00
    手机的 pdf 扫描 app 可能简单一点,多找几个试一试
    BurneJones
        10
    BurneJones  
       2021-11-05 11:59:03 +08:00 via iPhone
    又或者,如果书籍印刷字体比较标准,且为常见字,照片清晰度也不错,不需要完整保留文本的样式,那么也可以考虑用 OCR 工具将文字识别提取出来使用。这样可以减少裁剪时间
    lithiumii
        11
    lithiumii  
       2021-11-05 11:59:59 +08:00 via Android
    有个软件叫 scan tailor ,试试?
    1350943277
        12
    1350943277  
       2021-11-05 12:04:29 +08:00 via iPhone
    对于区区一千来张,我看用 microsoft scope 或者 scaner pro 人工裁剪并矫正透视是最省时省力又靠谱的。
    nowheretoseek
        13
    nowheretoseek  
    OP
       2021-11-05 12:15:34 +08:00
    @BurneJones 现在已经有底本了,需要对照这些图片校对。所以我的思路是裁剪好后,用古籍 OCR 做一次识别,以便将每张照片和底本的文本位置对起来,方便后续录入、校对。不裁剪好,古籍 OCR 是没法用的,这个领域的 OCR 识别率很来就很低,白描讯飞什么的都不行,要用专门的 OCR 工具。
    nowheretoseek
        14
    nowheretoseek  
    OP
       2021-11-05 12:16:31 +08:00
    @0o0o0o0 这种情况的 pdf 恐怕得自己弄,这些通用软件效果都不大行
    Muniesa
        15
    Muniesa  
       2021-11-05 12:21:07 +08:00 via Android   ❤️ 1
    根据四个点位置透视变换到固定尺寸,OpenCV 可以做的
    nowheretoseek
        16
    nowheretoseek  
    OP
       2021-11-05 12:22:10 +08:00
    @BurneJones 整合成 pdf 后可以用 briss 切白边统一裁剪,但它对我这个需求不大适用
    nowheretoseek
        17
    nowheretoseek  
    OP
       2021-11-05 12:27:39 +08:00
    @lithiumii 这个工具不错,能将左右两页分开,内容区域识别功能准确度也挺高,虽然不能透视裁剪,但对勾勒大致区域很有用,谢谢
    nowheretoseek
        18
    nowheretoseek  
    OP
       2021-11-05 12:37:08 +08:00
    @Muniesa 是吗,那我试试
    littlejohnny
        19
    littlejohnny  
       2021-11-05 15:49:00 +08:00
    如果大部分原稿的透视角和距离差不多(比如误差 10%以内?),且对裁剪结果精度要求不是非常高的话,PS 的批处理+动作是可以完成的。
    先用一张样例建好动作(矫正透视、宽高比、画布大小裁剪);然后执行批处理就行。
    wsxkit
        20
    wsxkit  
       2021-11-05 15:56:23 +08:00
    GeruzoniAnsasu
        21
    GeruzoniAnsasu  
       2021-11-05 16:11:04 +08:00
    PS 可以自动校正镜头视角的

    找到一个如何批量「自动」的帖子

    https://community.adobe.com/t5/camera-raw-discussions/batch-process-camera-raw-auto-correct/m-p/10432731
    BAT
        22
    BAT  
       2021-11-05 16:23:11 +08:00
    下载一个 Dropbox 去图书馆重新拍吧,比手动一张张调整还快些
    nowheretoseek
        23
    nowheretoseek  
    OP
       2021-11-06 14:20:14 +08:00
    @wsxkit 谢谢,试了下发现四角侦测不太好用,并且回车批量洗白时,有一个 bug ,会不断循环,反复处理输出。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3607 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:49 · PVG 18:49 · LAX 02:49 · JFK 05:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.