批量将图片的指定区域修改颜色 python

#竖版原始图片-上下重叠-涂抹上下-一个样本一共56张(7行8列)一列8张,第一列不涂抹,其他列都涂抹图片上边高300像素
import os
import numpy as np
from PIL import Image

#下侧涂白
def changecolorl(file):
    img = Image.open(file)  # 读取系统的内照片
    array = np.array(img)
    # 涂白函数changecolorl
    colorl = [255, 255, 255]
    for col in range(0, 1216):  # 宽度1216,
        for row in range(0, 300):  # 高度300
            array[row, col] = colorl
    new_img = Image.fromarray(array)
    new_img.save(file)
#右侧涂白
def changecolorl_1(file):
    img1 = Image.open(file)  # 读取系统的内照片
    array1 = np.array(img1)
    #涂白函数changecolorl_1
    colorl_black = [255, 255, 255]
    for col in range(916, 1216):  # 涂抹值计算1216-300=916
        for row in range(0, 1936):  # 高度1936像素
            array1[row, col] = colorl_black
    new_img1 = Image.fromarray(array1)
    new_img1.save(file)

def piliang(srcdir):
    srcfiles = os.listdir(srcdir)  # 遍历文件夹
    for srcfile in srcfiles:  # 依次循环文件
        srcfile1 = os.path.join(srcdir, srcfile)  # 依次获得文件的完整文件路径和文件名字
        a = srcfile1.rsplit("_", 1)
        c = srcfile1.rsplit("_", 2)  #
        b = a[1].rsplit(".", 1)
        #判断列号不为7,做右侧涂白处理
        if int(b[0]) != 7:
            changecolorl_1(srcfile1)
        #判断行号不为0,做上侧涂白处理
        if int(c[1]) != 0:
            changecolorl(srcfile1)

    print("game over")
piliang("F:/jpg3-ZD/测试/001/")

代码如上,根据图片名称判断修改区域。

例如图片名称为0011_0_0.jpg的,0011为图片id号,第一个0为行号,第二个0位列号。图片尺寸是1936*1216。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值