将图片批量切分为256*256像素 您所在的位置:网站首页 256×256像素图片多大 将图片批量切分为256*256像素

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

2024-05-28 13:37| 来源: 网络整理| 查看: 265

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

文章目录 前言一、代码实现总结

前言

        在红外与可见光图像融合任务中,由于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图像进行读取,读取的图像要求是彩色图像



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有