Python批量JPG、NPG等图片去底色(可去比较复杂的底色)

from PIL import Image
import os
i = 1
j = 1

dir_lists = ["ilovepdf_pages_to_jpg (1)", "ilovepdf_pages_to_jpg (2)", "ilovepdf_pages_to_jpg (3)"]
dir_out_lists = ["LUCKY2", "LUCKY3", "LUCKY4"]
for i in range(0, 3):
    dir_in = dir_lists[i]
    dir_out = dir_out_lists[i]
    img_dir_root = os.path.join("C:/Users/JIA/Desktop/", dir_in)
    img_dir_out_root = os.path.join("C:/Users/JIA/Desktop/", dir_out)
    img_files = os.listdir(img_dir_root)
    img_files.sort(key=lambda x: int(x[12:-4]))
    img_files.reverse()
    count = 0
    for file_name in img_files:
        img_path = os.path.join(img_dir_root, file_name)
        img = Image.open(img_path)  # 读取系统的内照片
        width = img.size[0]  # 长度
        height = img.size[1]  # 宽度
        for i in range(0, width):  # 遍历所有长度的点
            for j in range(0, height):  # 遍历所有宽度的点
                data = (img.getpixel((i, j)))  # 打印该图片的所有点
                # print(data)  # 打印每个像素点的颜色RGBA的值(r,g,b,alpha)
                # print(data[0])  # 打印RGBA的r值
                if data[0] >= 150 and data[1] >= 160 and data[2] >= 0:  # RGBA的r值大于170,并且g值大于170,并且b值大于170
                    img.putpixel((i, j), (255, 255, 255, 255))  # 则这些像素点的颜色改成大红色
        img = img.convert("RGB")  # 把图片强制转成RGB
        img.save(img_dir_out_root + "/" + str(count) + ".jpg")  # 保存修改像素点后的图片
        count += 1
### 回答1: matlab中的npg函数是一个基于模拟退火算法的全局优化函数。它被用来寻找给定约束条件下的最小值或最大值。 npg函数的使用格式为: x = npg(fun,x0,A,b,Aeq,beq,lb,ub,options) 其中,fun是用户定义的目标函数;x0是初始猜测解;A和b定义了线性不等式约束条件;Aeq和beq定义了线性等式约束条件;lb和ub定义了变量的上下界;options是一个结构体,包含了算法的相关参数设置。 npg函数首先使用模拟退火算法进行优化,然后使用局部搜索算法来细化结果。这个函数使用了随机性来探索解空间,并以一定概率接受劣解,从而避免陷入局部最优解。 在调用npg函数时,我们需要根据具体的问题设置好目标函数和约束条件。目标函数应是连续可导的,并且返回一个标量值。约束条件可以包括线性不等式约束、线性等式约束、变量的上下界等。我们还可以通过调整参数options来控制算法的收敛速度和结果的准确性。 总之,npg函数是matlab中的一个全局优化函数,它基于模拟退火算法来寻找给定约束条件下的最小值或最大值。通过合理设置目标函数和约束条件,并调整算法的参数,我们可以得到较好的优化结果。 ### 回答2: npg函数在MATLAB中是一个用于计算NPG(Normalized Power Gained)的函数。NPG是一种用于评估机械系统动力学特性的指标。它与系统的阻尼特性有关,可以用于评估系统的稳定性和性能。 在MATLAB中,使用npg函数可以计算给定系统的NPG值。该函数需要提供系统的传递函数作为输入参数。传递函数是描述输入和输出之间关系的数学模型。通过传递函数,可以确定系统的动态特性,如频率响应和阻尼比。 npg函数根据传递函数计算系统的固有频率和阻尼比,并使用这些值来计算NPG值。NPG值越大,表示系统在运行过程中获得的能量越高,系统更加稳定。 使用npg函数可以帮助工程师和研究人员评估系统的动力学特性,并根据需要进行调整和优化。该函数在MATLAB中提供了一种方便的方式来计算和分析系统的NPG值。 ### 回答3: matlab中的npg函数是用来计算矩阵中每个元素的非负公差的函数。NPG是Non-negative Partial Gradient的缩写,意为非负部分梯度。在计算机科学和数学领域,梯度是指一个函数的变化率或斜率。在图像处理和优化问题中,梯度可以帮助我们确定最佳的方向和步长。然而,在某些情况下,我们希望限制梯度的取值范围在非负数之间,以保持数据的特定性质和约束。这种情况下,就可以使用matlab中的npg函数。 npg函数的输入参数为一个矩阵,输出为一个与输入矩阵相同大小的矩阵,其中每个元素的值为相应元素的非负梯度值。具体来说,对于输入矩阵中的每个元素,npg函数会计算其梯度值,并将其限制在非负范围内。如果原始元素大于零,则输出元素与原始元素相同;如果原始元素小于零,则输出元素为零。因此,npg函数可以帮助我们处理那些需要梯度的问题,但又需要限制梯度的正负性的情况。 使用npg函数的示例代码如下: ```matlab A = [-1 2 -3; 4 -5 6; -7 8 -9]; % 输入矩阵 B = npg(A); % 计算矩阵A的非负梯度 disp(B); % 输出非负梯度矩阵 ``` 以上示例代码中,输入矩阵A包含了正负数,通过调用npg函数得到的矩阵B则只包含非负数。可以看到,输出矩阵中负数元素都被替换为零,而正数元素与输入矩阵中相同。 总之,matlab中的npg函数提供了一种计算矩阵非负梯度的方法,它能够帮助处理那些需要限制梯度正负性的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值