使用ps制作大型图片的分割数据集(遥感,sar)


前言

使用传统的标注软件,labelme与百度ai智能分割软件eiseg,
都无法打开遥感,sar图像的原图,会直接爆存储闪退,
故出此教程来进行数据集的制作。

一、photoshop

ps的强大众所周知

二、使用步骤

1.使用磁性套索工具进行描边

在这里插入图片描述
相关的设置:
可以更具自己的数据集进行参数修改
在这里插入图片描述

2.勾选待选择区域

3.进行mask填充

在mask上点击鼠标右键,选择填充(填充前自行设定好自己的 前景色与背景色)
在这里插入图片描述
在这里插入图片描述

4.结果

在这里插入图片描述
选择导出即可为png或者jpg即可
问题:
由于原始的图片过大,ps在导出的时候会自动缩放到36%左右(目前无解,有知道的大佬可以分享一下相关的处理心得)


使用脚本对大场景图片进行分割处理

处理脚本代码:

import os
from PIL import Image
Image.MAX_IMAGE_PIXELS=2300000000
def splitimage(src, rownum, colnum, dstpath):
    img = Image.open(src)
    w, h = img.size
    if rownum <= h and colnum <= w:
        print('Original image info: %sx%s, %s, %s' % (w, h, img.format, img.mode))
        print('开始处理图片切割, 请稍候...')

        s = os.path.split(src)
        if dstpath == '':
            dstpath = s[0]
        fn = s[1].split('.')
        basename = fn[0]
        ext = fn[-1]
        if ext=='jpg':
            ext='jpeg'

        num = 0
        rowheight = h // rownum
        colwidth = w // colnum
        for r in range(rownum):
            for c in range(colnum):
                box = (c/2 * colwidth, r * rowheight, (c/2 + 1) * colwidth, (r + 1) * rowheight)
                img.crop(box).save(os.path.join(dstpath, basename + '_' + str(num) + '.' + ext), ext)
                num = num + 1

                box = (c * colwidth, r * rowheight, (c + 1) * colwidth, (r + 1) * rowheight)
                img.crop(box).save(os.path.join(dstpath, basename + '_' + str(num) + '.' + ext), ext)
                num = num + 1

        print('图片切割完毕,共生成 %s 张小图片。' % num)
    else:
        print('不合法的行列切割参数!')



src = input('请输入图片文件路径:')
if os.path.isfile(src):
    dstpath = input('请输入图片输出目录(不输入路径则表示使用源图片所在目录):')
    if (dstpath == '') or os.path.exists(dstpath):
        row = int(input('请输入切割行数:'))
        col = int(input('请输入切割列数:'))
        if row > 0 and col > 0:
            splitimage(src, row, col, dstpath)
        else:
            print('无效的行列切割参数!')
    else:
        print('图片输出目录 %s 不存在!' % dstpath)
else:
    print('图片文件 %s 不存在!' % src)

使用方法:
请输入图片文件路径:e:/6.jpg
请输入图片输出目录(不输入路径则表示使用源图片所在目录):
请输入切割行数:20
请输入切割列数:20
Original image info: 9554x10289, JPEG, RGB
开始处理图片切割, 请稍候…
图片切割完毕,共生成 800 张小图片

总结

建议全部选完一类后,对这一类进行填充,再通过反选的方式对另一类填充,提高效率

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值