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

请教如何在 Python3 中实现依据参数读取图像并且分割图像的功能?

  •  1
     
  •   villgust · 7 天前 · 285 次点击
    Python 新手,目前做一个机器学习训练,是打算基于 Python3 实现的,也找了一些资料,现在卡在这里了。
    文件都在工作目录下。
    目前有两个 txt 文件,一个是保存着训练图片名称,简称 a.txt ,
    例如:
    000.jpg
    001.jpg
    002.jpg
    ......
    另一个是保存着需分离图片坐标,简称 b.txt 。
    例如:
    212,964,283,226
    364,394,238,294
    473,728,593,294
    ......
    两个 txt 文件是每行一一对应关系.,比如第一张图即 000.jpg ,需要分割图片的坐标为 212,964,283,226
    现在思路是,先将两个 txt 文件转化为列表,但是接下来怎么做就太清楚了,请问大家有什么解决方法?


    目前代码如下:

    for i in range(0,2): #行数目前暂取前 3 行
    with open('a.txt') as f:
    filename0 = [line.rstrip('\n') for line in f]
    print (filename0[i])
    with open('b.txt') as f:
    piccoordinate0 = [line.rstrip('\n') for line in f]
    print (piccoordinate0[i])

    希望大家能帮帮忙,万分感谢。
    第 1 条附言  ·  7 天前
    刚才忘记补充了,目前准备用的就是 pillow,现在处理单个的有思路,但不会依据两个 txt 文件进行批量操作。
    下面就是单个的操作代码:
    from PIL import Image
    img = Image.open("000.jpg")
    img2 = img.crop((212,964,283,226 ))
    img2.save("000.jpg")
    7 回复  |  直到 2018-05-18 18:36:10 +08:00
        1
    fffflyfish   7 天前   ♥ 1
    Pillow 的 Image crop 方法或者 Skimage 里直接图像转成 numpy 然后截取行列 crop
        2
    villgust   7 天前
    @fffflyfish
    刚才忘记补充了,目前准备用的就是 pillow,现在处理单个的有思路,但不会依据两个 txt 文件进行批量操作。
    下面就是单个的操作代码:
    from PIL import Image
    img = Image.open("000.jpg")
    img2 = img.crop((212,964,283,226 ))
    img2.save("000.jpg")
        3
    Eleflea   7 天前 via Android   ♥ 1
    f.readlines()然后 zip
        4
    fffflyfish   7 天前 via iPhone   ♥ 1
    把两个列表 zip 起来,一个 for 循环就好了
        5
    villgust   7 天前
    @fffflyfish 请问合在一起后,怎么用 Image crop 方法实现读取指定行的文件名和坐标呢?
        6
    fffflyfish   7 天前   ♥ 1
    ```
    for img_file , pos in zip(filename0 ,piccoordinate0 )
    img = Image.open(img_file)
    img_crop = img.crop(tuple(pos.split(",")))
    ```
        7
    villgust   7 天前
    @fffflyfish 感谢前辈的指点。
    现在还遇到了问题,就是执行程序后,出现 NameError: name 'Image' is not defined。
    能不能再展示下前面是怎么定义的?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   576 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 20:50 · PVG 04:50 · LAX 13:50 · JFK 16:50
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1