将图片批量切分为256*256像素

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

        在红外与可见光图像融合任务中,由于TNO数据集数量太少,常常需要我们将数据集进行划动拆分,本文通过代码实现,将图像进行拆分

一、代码实现

import cv2
import os
import math
import shutil


# 根据任务要求,定义一个caijian函数
def caijian(path, path_out, size_w=256, size_h=256, step=12):  # step为步长,设置为12
    ims_list = os.listdir(path)  # 在此例中调用时,ims_list为['image.png', 'label.png']

    for im_list in ims_list:
        number = 0
        name = im_list[:]  # 读取整张图片
        img = cv2.imread(ims_path+name)  # 读取要切割的图片
        size = img.shape
        i = 0
        for h in range(0, size[0], step):
            star_h = h  # star_h表示起始高度,从0以步长step=12开始循环
            for w in range(0, size[1], step):
                star_w = w  # star_w表示起始宽度,从0以步长step=12开始循环
                end_h = star_h + size_h  # end_h是终止高度

                if end_h > size[0]:  # 如果边缘位置不够256的列
                    # 以倒数512形成裁剪区域
                    star_h = size[0] - size_h
                    end_h = star_h + size_h
                    i = i - 1
                end_w = star_w + size_w  # end_w是中止宽度
                if end_w > size[1]:  # 如果边缘位置不够256的行
                    star_w = size[1] - size_w
                    end_w = star_w + size_w
                    i = i - 1

                cropped = img[star_h:end_h, star_w:end_w]  # 执行裁剪操作
                i = i + 1
                name_img = str(i)  # 命名图片,图片名字从1开始命名
                cv2.imwrite('{}/{}.png'.format(path_out, name_img), cropped)  # 将切割得到的小图片存在path_out路径下

# 将完整的图像划分为小块
if __name__ == '__main__':
    ims_path = 'D:\Evaluation-for-Image-Fusion-main\Image\Source-Image\TNO\ir2\\'  # 图像数据集的路径
    # 在result文件夹下,创建一个label_s文件夹,用于存放label切割的结果
    path = 'D:\Evaluation-for-Image-Fusion-main\Image\Source-Image\TNO\ir1'  # 切割得到的数据集存放路径,
    if not os.path.exists(path):
        os.makedirs(path)
    caijian(ims_path, path, size_w=256, size_h=256, step=12) 


总结

        本文实现了对红外可见光图像进行滑动拆分,值得注意的是,本文使用的cv2图像进行读取,读取的图像要求是彩色图像

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值