我有一张100*100的图像,使用Python用0填充的方式将该图像resize成200*200
时间: 2024-09-10 09:09:26 浏览: 41
在Python中,如果你有一个100x100像素的图像,想用0填充将其resize成200x200像素,你需要先创建一个新的200x200的全零图像,然后将原始图像居中放置在新图像上。这里我们可以用OpenCV库来实现,因为OpenCV也有丰富的图像处理功能。
以下是实现这个需求的代码示例:
```python
import cv2
def resize_with_padding(original_image_path, target_size=(200, 200)):
# 读取原始图像
original_img = cv2.imread(original_image_path, cv2.IMREAD_GRAYSCALE) # 只读灰度图,如果是彩色则不需要IMREAD_GRAYSCALE
# 获取原始图像的尺寸
orig_h, orig_w = original_img.shape
# 创建新的空白图像,用0填充
resized_img = np.zeros((target_size[0], target_size[1]), dtype=np.uint8)
# 将原始图像居中放入新的图像
x_start = int((target_size[0] - orig_w) / 2)
y_start = int((target_size[1] - orig_h) / 2)
resized_img[y_start:y_start+orig_h, x_start:x_start+orig_w] = original_img
# 显示或保存结果
cv2.imshow("Resized with Padding", resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 使用函数
resize_with_padding('your_image.png')
```
这段代码假设你的图像是一个单通道(灰度)的PNG文件。`cv2.imread`用于读取图片,`np.zeros`用于创建全零数组,`resized_img[y_start:y_start+orig_h, x_start:x_start+orig_w] = original_img`则是将原始图像插入到新图像的适当位置。
阅读全文