用python实现 将图像从底端有像素点的地方开始向上方计数 截取从底端到上方18像素点和到13像素点之间的图片 输入图片方式可以批量输入和批量保存
时间: 2024-05-05 17:16:51 浏览: 37
以下是用Python实现的代码:
```python
import os
from PIL import Image
# 批量处理图片
def batch_process_images(input_path, output_path):
for filename in os.listdir(input_path):
if filename.endswith('.jpg'):
input_file = os.path.join(input_path, filename)
output_file = os.path.join(output_path, filename)
process_image(input_file, output_file)
# 处理单张图片
def process_image(input_file, output_file):
# 打开图片并获取像素矩阵
with Image.open(input_file) as img:
pixels = img.load()
width, height = img.size
# 获取底部有像素点的位置
bottom = 0
for y in range(height-1, -1, -1):
for x in range(width):
if pixels[x, y][3] > 0:
bottom = y
break
if bottom > 0:
break
# 截取图片
top = max(bottom - 18, 13)
img.crop((0, top, width, bottom)).save(output_file)
# 示例用法
batch_process_images('input_folder', 'output_folder')
```
以上代码中,`batch_process_images()`函数用于批量处理输入文件夹中的所有图片,并将结果保存到输出文件夹中。`process_image()`函数用于处理单张图片,该函数首先打开输入文件并获取其像素矩阵,然后在像素矩阵中从底部向上搜索,找到底部有像素点的位置,并根据要求截取图片。最后,将处理后的图片保存到输出文件中。
阅读全文