python改变图像大小在指定要求范围内

前言

  思路大致是降低图片质量缩小图片大小,加了一个循环判断,如果图像大小不在要求范围内,图像质量就从100递减,以5递减图片质量直到图像压缩到这个范围内。

代码如下:

import os
from PIL import Image

def compress_image(image_path, output_path, max_size=200 * 1024):
    # 读取图像
    image = Image.open(image_path)

    # 设置初始图像质量
    quality = 100
    # 循环直到图像大小小于200KB
    while True:
        # 将图像保存为JPEG格式
        image.save(output_path, format="JPEG", quality=quality)

        # 计算输出图像的大小
        output_size = os.path.getsize(output_path)
        # 如果图像大小小于200KB,则退出循环
        if output_size <= max_size:
            break

        # 否则降低图像质量并继续循环
        quality -= 5

# 将图像从原始路径读取并压缩到输出路径
compress_image(r"input.jpg", "output.jpg")


Python中,可以通过多种方式增大图像的ROI(Region of Interest,感兴趣区域)范围。下面是一些常见的方法: 1. **使用图像处理库(如OpenCV)**:使用OpenCV库,你可以对图像进行各种处理,包括调整ROI范围。例如,你可以使用`cv2.inRange()`函数来选择特定颜色的区域作为ROI。 ```python import cv2 import numpy as np # 加载图像 img = cv2.imread('image.jpg') # 定义ROI范围 roi_lower_color = np.array([0, 0, 0]) roi_upper_color = np.array([255, 255, 255]) # 使用inRange函数选择ROI roi = cv2.inRange(img, roi_lower_color, roi_upper_color) # 将ROI设置为图像的mask,这样可以使用此mask来修改原始图像 img[roi] = [0, 0, 0] # 设置ROI为黑色,其余部分为白色 ``` 这段代码会选取图像中颜色在指定范围内的区域作为ROI。你可以根据需要调整颜色范围。 2. **使用图像分割库(如skimage)**:skimage库提供了许多用于图像分割的工具,包括ROI提取。你可以使用各种分割算法(如阈值分割、区域生长、聚类等)来提取感兴趣的区域。 3. **使用深度学习库(如TensorFlow或PyTorch)**:对于更复杂的任务,如语义分割或对象检测,你可能需要使用深度学习。这些模型通常能够识别并分割出复杂的对象和背景,因此你可以利用这些模型来提取ROI。这可能需要一些数据集和预训练模型,但通常比使用传统方法更有效。 4. **手动调整**:最简单的方法就是手动调整ROI范围。你可以使用图像编辑工具(如Photoshop或GIMP)或Python图像处理库(如PIL)来调整图像大小或裁剪区域。 以上是一些基本的方法,你可以根据具体需求和情况选择适合的方法。需要注意的是,处理图像时需要注意可能存在的隐私问题,并确保遵守相关法律法规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张Tt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值