文件夹A存放有若干二进制掩码图像如何将值为1的部分裁剪出来并放入文件夹B(代码)
时间: 2024-05-14 21:13:33 浏览: 161
以下是Python代码,实现将文件夹A中所有二进制掩码图像中值为1的部分裁剪出来并保存到文件夹B中:
```python
import os
from PIL import Image
folder_a = 'path/to/folder/A'
folder_b = 'path/to/folder/B'
if not os.path.exists(folder_b):
os.makedirs(folder_b)
for file in os.listdir(folder_a):
file_path = os.path.join(folder_a, file)
if os.path.isfile(file_path):
# Load binary mask image
mask = Image.open(file_path).convert('1')
# Crop out the region where pixel values are 1
bbox = mask.getbbox()
if bbox:
region = mask.crop(bbox)
# Save the cropped image to folder B
save_path = os.path.join(folder_b, file)
region.save(save_path)
```
该代码将遍历文件夹A中的所有文件,假设每个文件是一个二进制掩码图像,其中像素值只可能为0或1。对于每个图像,代码首先将其转换为PIL库中的二值图像模式,即每个像素只有黑色或白色两种取值。接着,代码找到二值图像中值为1的连通部分,并将其裁剪出来。最后,将裁剪出来的图像保存到文件夹B中,文件名与原始文件相同。如果一个文件中没有值为1的像素,则不会被处理。
阅读全文