NickyHaris
V2EX  ›  问与答

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

  •  
  •   NickyHaris · Nov 5, 2021 · 3260 views
    This topic created in 1826 days ago, the information mentioned may be changed or developed.

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

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

    Supplement 1  ·  Nov 6, 2021
    感谢各位的建议,反馈下最终的方案。

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

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

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

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

    https://community.adobe.com/t5/camera-raw-discussions/batch-process-camera-raw-auto-correct/m-p/10432731
    BAT
    BAT
    Nov 5, 2021
    22
    下载一个 Dropbox 去图书馆重新拍吧,比手动一张张调整还快些
    NickyHaris
    NickyHaris
    OP
    Nov 6, 2021
    23
    @wsxkit 谢谢,试了下发现四角侦测不太好用,并且回车批量洗白时,有一个 bug ,会不断循环,反复处理输出。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1384 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 22:39 · PVG 06:39 · LAX 14:39 · JFK 17:39
    ♥ Do have faith in what you're doing.