利用cv2将图片按照指定要求填充,然后裁剪并保存的代码
时间: 2024-04-15 08:27:47 浏览: 95
以下是使用 OpenCV (cv2) 库实现图片填充、裁剪并保存的示例代码:
```python
import cv2
def fill_and_crop_image(image_path, target_size, fill_color, save_path):
# 读取原始图片
image = cv2.imread(image_path)
# 获取原始图片的尺寸
height, width = image.shape[:2]
# 计算填充后的目标尺寸
target_width, target_height = target_size
aspect_ratio = target_width / target_height
if width / height > aspect_ratio:
new_width = int(height * aspect_ratio)
new_height = height
else:
new_width = width
new_height = int(width / aspect_ratio)
# 调整图片尺寸并进行填充
resized_image = cv2.resize(image, (new_width, new_height), interpolation=cv2.INTER_AREA)
padded_image = cv2.copyMakeBorder(resized_image,
(target_height - new_height) // 2,
(target_height - new_height) // 2,
(target_width - new_width) // 2,
(target_width - new_width) // 2,
cv2.BORDER_CONSTANT,
value=fill_color)
# 裁剪图片为目标尺寸
cropped_image = padded_image[:target_height, :target_width]
# 保存裁剪后的图片
cv2.imwrite(save_path, cropped_image)
# 示例用法
image_path = 'input.jpg' # 原始图片路径
target_size = (800, 600) # 目标尺寸
fill_color = (255, 255, 255) # 填充颜色,使用 BGR 值表示,这里为白色
save_path = 'output.jpg' # 保存路径
fill_and_crop_image(image_path, target_size, fill_color, save_path)
```
您需要将代码中的`image_path`替换为您的原始图片路径,`target_size`替换为您期望的目标尺寸,`fill_color`替换为您期望的填充颜色(使用BGR值表示),`save_path`替换为您希望保存的文件路径。执行该代码后,将会生成按照指定要求填充、裁剪后的图片并保存到指定路径。
阅读全文