用python实现 将图像从底端有像素点的地方开始向上方计数 截取从底端到上方18像素点和到13像素点之间的图片 输入图片方式可以批量输入和批量保存
时间: 2024-05-05 21:16:50 浏览: 56
FAST角点检测python实现及基于opencv实现
以下是一个实现该功能的Python代码示例:
```python
import os
from PIL import Image
def crop_image(file_path):
img = Image.open(file_path)
width, height = img.size
for y in range(height-1, 0, -1):
if img.getpixel((0, y)) != (0, 0, 0): # 找到第一个非黑色像素点
top = max(y-18, 0) # 计算截取的上边界
bottom = min(y-13, height) # 计算截取的下边界
cropped_img = img.crop((0, top, width, bottom))
cropped_img.save(f"{os.path.splitext(file_path)[0]}_{top}_{bottom}.png")
if __name__ == '__main__':
# 批量处理文件夹中的所有图片
for file_name in os.listdir("input_folder"):
if file_name.endswith(".png") or file_name.endswith(".jpg"):
file_path = os.path.join("input_folder", file_name)
crop_image(file_path)
```
该代码会遍历输入文件夹中的所有图片,然后对每一张图片进行处理:
- 首先从底部向上遍历每一行像素点,找到第一个非黑色像素点的位置。
- 然后根据该位置计算出要截取的图片范围,即从底部向上数第13到18行之间的像素点。
- 最后使用PIL库的crop()函数对图片进行截取,并将截取后的图片保存到输出文件夹中。保存的文件名格式为原文件名_上边界_下边界.png。
你可以根据需要修改输入输出文件夹的路径,以及截取的上下边界值。
阅读全文