【python图像处理】单张图像裁剪与批量图片裁剪

一、效果

二、代码

1、单张图片裁剪

# 将单张图片分成5张
import cv2
import numpy as np
srcImg = cv2.imread("F:/test.jpg")
cv2.imshow("[srcImg]",srcImg)

# shap[0] height,shape[1] width
print(srcImg.shape)
hei=srcImg.shape[0]
wid=srcImg.shape[1]

# get 5 roi
num=5
for i in range(0,num):
    print(i)
    hei_0=0
    hei_1=int(hei)
    wid_0=int(i*wid/num)
    wid_1=int((i+1)*wid/num)
    roiImg = srcImg[hei_0:hei_1, wid_0:wid_1]
    # cv2.imshow("[ROIImg]", roiImg)
    path="F:/out/"+str(i)+".jpg"
    cv2.imwrite(path,roiImg)

2、批量图片裁剪

# 处理多张图片
import numpy as np
import glob as glob
import cv2
import os

# Returns a list of all folders with participant numbers
# img_path = glob.glob("F:/test/*jpg")
# for path in img_path:
#     img  = cv2.imread(path)
#     cv2.imshow('img',img)
#     cv2.waitKey(1000)

# 循环处理列表中的所有图片
path = os.path.expanduser("F:/test/")
for f in os.listdir(path):
    # print(f.strip()[0:-4])

    path="F:/test/"+f.strip()
    print(path)
    img = cv2.imread(path)
    # cv2.imshow('img', img)
    # shap[0] height,shape[1] width
    hei = img.shape[0]
    wid = img.shape[1]

    # get 5 roi
    num = 5
    for i in range(0, num):
        print(i)
        hei_0 = 0
        hei_1 = int(hei)
        wid_0 = int(i * wid / num)
        wid_1 = int((i + 1) * wid / num)
        roiImg = img[hei_0:hei_1, wid_0:wid_1]
        # cv2.imshow("[ROIImg]", roiImg)
        path = "F:/out/" +f.strip()[0:-4]+"_"+ str(i) + ".jpg"
        cv2.imwrite(path, roiImg)

 

  • 18
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值