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

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

  •  
  •   nowheretoseek · 193 天前 · 1013 次点击
    这是一个创建于 193 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言  ·  192 天前
    感谢各位的建议,反馈下最终的方案。

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

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

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

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

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