python批量裁剪图片_批量随机裁剪图片 python pil

该博客介绍了一个使用Python的OpenCV库批量裁剪图像的脚本。脚本遍历指定目录中的图片,对每张图片进行256x256的网格裁剪,并随机裁剪出512x512或1024x1024的图像,保存到新的文件夹中。这个过程对于数据增强或图像预处理非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#coding=utf-8

import cv2

import random

import os

import numpy as np

from tqdm import tqdm

def solve():

cur_src="E:/CCF_competition/remote_sensing_image/unet_buildings/unet_buildings/newsrc/jpg/"

cur_label="E:/CCF_competition/remote_sensing_image/unet_buildings/unet_buildings/newlabel/"

for i in range(1,2):

count = 1

cur_url="{}{}.jpg".format(cur_src,i)

cur_url_label = "{}{}.png".format(cur_label,i)

print(cur_url)

now = cv2.imread(cur_url)

now_label = cv2.imread(cur_url_label)

w,h,_ = now.shape

for k in range(w//256):

for kk in range(h//256):

s_img = now[k*256:(k+1)*256,kk*256:(kk+1)*256,:]

l_img = now_label[k*256:(k+1)*256,kk*256:(kk+1)*256,:]

cv2.imwrite("{}{}/{}_{}.jpg".format(cur_src,"cut",i,count),s_img)

cv2.imwrite("{}{}/{}_{}.png".format(cur_label,"cut",i,count),l_img)

count +=1

while count<=2500:

j = random.randint(0,5)

if j<=3:

x_min=random.randint(0,w-512)

y_min=random.randint(0,h-512)

s_img = now[x_min:x_min+512,y_min:y_min+512,:]

l_img = now_label[x_min:x_min+512,y_min:y_min+512,:]

cv2.imwrite("{}{}/{}_{}.jpg".format(cur_src,"cut",i,count),s_img)

cv2.imwrite("{}{}/{}_{}.png".format(cur_label,"cut",i,count),l_img)

else:

x_min=random.randint(0,w-1024)

y_min=random.randint(0,h-1024)

s_img = now[x_min:x_min+1024,y_min:y_min+1024,:]

l_img = now_label[x_min:x_min+1024,y_min:y_min+1024,:]

cv2.imwrite("{}{}/{}_{}.jpg".format(cur_src,"cut",i,count),s_img)

cv2.imwrite("{}{}/{}_{}.png".format(cur_label,"cut",i,count),l_img)

count += 1

if __name__ == '__main__':

solve()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值