栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

OpenCV批量将图片分为16份或者N份并保存

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenCV批量将图片分为16份或者N份并保存

OpenCV批量将图片分为16份或者N份并保存 代码部分
import cv2
import os
import numpy as np
import matplotlib.pyplot as plt
#将图像分成16分,并保存下来
def shuffle_to_randomscale(src_image,h,w,pic,scale):
    plt.figure()
    pic_name = pic.split('.jpg')[0]
    for i in range(scale):
        grid_h = h/scale
        for j in range(scale):
            grid_w = w/scale
            img_copy = src_image[int(grid_h)*j:int(grid_h)*(j+1),int(grid_w)*i:int(grid_w)*(i+1)]
            new_name = pic_name + '_' + str(i) + str(j) + '.jpg'
            new_path = os.path.join('New_Dataset',new_name)
            print('Now recreate the picture {}'.format(new_name))
            # plt.subplot(4,4,i*4+j+1)
            plt.imshow(img_copy)
            # if (i==3 and j==3):
            cv2.imwrite(new_path,img_copy)
            print('Now recreate the picture {}'.format(new_name))
    plt.show()

#获得所有图像并完成图像分割成16段的任务
def main(path,scale):
    pic_names = os.listdir(path)
    for pic in pic_names:
        pic_path = path + '/' + pic
        src_image = cv2.imread(pic_path)
        h,w,_ = src_image.shape
        shuffle_to_randomscale(src_image,h,w,pic,scale)

if __name__ == '__main__':
    #设置想要裁剪的尺度
    scale = 4
    path = 'Dataset'
    main(path,scale)
结果显示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号