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

关于分割长图片的问题

  •  
  •   fyq · 24 天前 · 674 次点击

    请教各位彦祖亦菲:

    有很多软件可以把不同的图片拼接成一张图片,以供人发布在微博或者朋友圈之类的社交平台,那有没有什么软件可以把这样『由不同尺寸的图片拼接得到的大的图片』逆向还原(剪裁)成一张张单独的小的图片的?

    需求来自于:

    从旅游博客的文章中看到的很多图片是长图的形式分享在文章里,由四五张不同的图片上下拼接在一起,在网页上浏览时可以滚动网页问题不大,但是保存到本地之后想要查看每张图片都要先放大再上下来回移动,感觉不太方便。

    迄今为止我自己的尝试:

    对于相同大小的图片组合起来的长图,写一个代码来拆很简单,简单除一下图片的数量就能得到每张图片的长宽像素自动加以分割,但是对于那种分辨率不同的图片组合起来的图片,似乎就有些棘手了。

    尤其是有些图片是上面两张小图左右放置,下面是一张正方形的大图,再下面是一个长方形的大图,这个好像只能通过图片内容来判断边界。

    我自己尝试用 Python 和 CV2 结合图片边界区域的像素变化来判断图片边界,感觉效果非常不理想。

    请问各位有没有经验可以供参考的?不知道有没有现成的轮子可以用,或者有商业软件可以实现这种目的的?

    5 条回复    2024-12-04 12:19:29 +08:00
    skydcnmana
        1
    skydcnmana  
       24 天前
    边缘检测,然后匹配矩形区域,应该就行吧
    fyq
        2
    fyq  
    OP
       24 天前
    @skydcnmana 现在就是这么尝试的,对于有白边分隔的效果不错;但是对于那种两张图片之间没有清晰边框,直接拼接甚至是渐变过渡的效果就很不好。
    skydcnmana
        3
    skydcnmana  
       24 天前
    @fyq 把图片转换成 6 阶灰度,这样大致是能找到矩形边缘的。
    fyq
        4
    fyq  
    OP
       23 天前
    @skydcnmana 好主意,我来试试看。不过还是想知道这种东西有没有别人已经实现了的,可以拿来直接用。
    fyq
        5
    fyq  
    OP
       17 天前
    开心,终于完成了我的 ImageUnstitcher 程序,用了 cv2 和 numpy ,撒花~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2511 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:26 · PVG 11:26 · LAX 19:26 · JFK 22:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.