用python实现 将图像从底端有像素点的地方开始向上方计数 截取从底端到上方18像素点和到13像素点之间的图片 输入图片方式可以批量输入和批量保存
时间: 2024-05-02 08:18:05 浏览: 57
FAST角点检测python实现及基于opencv实现
以下是使用Python实现将图像从底部向上计数,并截取指定区域的代码:
```python
from PIL import Image
def count_pixels(image_path):
img = Image.open(image_path)
width, height = img.size
count = 0
for y in range(height-1, 0, -1):
for x in range(width):
if img.getpixel((x,y)) != (0,0,0):
count += 1
else:
return count
return count
def crop_image(image_path, save_path):
img = Image.open(image_path)
width, height = img.size
top = height - 18
bottom = height - 13
img = img.crop((0, top, width, bottom))
img.save(save_path)
if __name__ == "__main__":
image_paths = ["image1.png", "image2.png", "image3.png"]
for path in image_paths:
pixel_count = count_pixels(path)
print(f"Pixel count for {path}: {pixel_count}")
if pixel_count > 0:
save_path = f"cropped_{path}"
crop_image(path, save_path)
print(f"Cropped image saved to {save_path}")
```
该代码首先定义了两个函数:`count_pixels`和`crop_image`。`count_pixels`函数接受一个图像路径作为参数,返回从底部向上计数的像素点数。该函数遍历图像的每个像素点,从底部向上计数,直到遇到第一个非黑色像素点,然后返回计数器的值。`crop_image`函数接受一个图像路径和保存路径作为参数,截取从底部到上方18像素点和到13像素点之间的区域,并将其保存为新的图像。
在`main`函数中,定义了一个图像路径列表,然后遍历列表中的每个图像,调用`count_pixels`函数获取像素点数,并根据像素点数是否大于零调用`crop_image`函数截取指定区域的图像并保存。
阅读全文