有480个二通道的方形图像数组,现在创立一个四维数组480*size*size*2,将每个图像依次放入其中。但由于每个图像size不同,所以在放入时若size大于40裁剪为40*40,size小于40进行0填充
时间: 2024-10-20 19:16:19 浏览: 17
在Python中,我们可以使用`numpy`库来处理这个问题。首先,我们需要将所有图像读取进来,然后检查它们的尺寸并进行相应的调整。下面是一个示例:
```python
import numpy as np
from PIL import Image
# 假设images是一个包含480张2通道图片的列表
images = ... # 需要实际读取图片文件来填充这一步骤
image_size = 40 # 四维数组的目标尺寸
# 创建一个空的四维数组
four_dim_array = np.zeros((480, image_size, image_size, 2), dtype=np.uint8)
for i, img in enumerate(images):
try:
# 使用PIL加载并处理图像
img = Image.open(img)
# 裁剪或填充图像
if img.size[0] > image_size or img.size[1] > image_size:
cropped_img = img.resize((image_size, image_size))
else:
cropped_img = img
# 添加到四维数组
four_dim_array[i] = np.array(cropped_img)
except Exception as e:
print(f"Error processing image {i}: {e}")
# four_dim_array now contains the resized and processed images
```
这里我们假设图片已经按某种顺序存储在一个列表中,然后通过循环逐个处理。如果图片的原始尺寸大于目标尺寸,就对其进行裁剪;如果原始尺寸小于目标尺寸,就用0填充。
阅读全文