使用Python随机裁剪一个图片

以下为代码和个人的一些注释。一个没有注释的代码简直浪费别人生命去研究你写的是啥

import cv2
import numpy as np
import os

# 判断是否存在目标文件夹,不存在则创建
new_file_path = r'C:\Users\Aisin Gioro dong po\Desktop\train2'
if os.path.isdir(new_file_path):
    pass
else:
    os.makedirs(new_file_path)
img = cv2.imread(r'C:\Users\Aisin Gioro dong po\Desktop\train\2.tiff')  # 读取图片
# 因为opencv读取的图片是BGR格式
# img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
# plt.imshow(cv2.cvtColor(img ,cv2.COLOR_BGR2RGB))
# plt.show()

# os.path.basename() 输出带后缀的最后一级目录,即“图片名称.后缀名”
basename = os.path.basename(r'C:\Users\Aisin Gioro dong po\Desktop\train\2.tiff')

# 裁剪块的大小512*512
patchsize = 512
# 裁剪的数量
num_patches = 10
# h,w分别代表原图像的高和宽;‘c’:接收图像通道数(没其他作用)
h, w, c = img.shape

for j in range(num_patches):
    rr = np.random.randint(0, h - patchsize)  # 代表随机生成一个整数:a<=随机数<=b
    cc = np.random.randint(0, w - patchsize)

    # 在原图片中切出一个新图片patchs并保存
    patchs = img[rr:rr + patchsize, cc:cc + patchsize, :]
    cv2.imwrite(
        os.path.join(new_file_path, basename.split('.')[0] + '{}.png'.format(j)),
        patchs)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值