批量随机裁剪图片 python pil

#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()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值