本系列文章配套代码获取有以下两种途径:
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/1i9F6oV1J5oZnIsOASDs0gQ?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_mini_program
import cv2
def crop_image(image_path, width, height):
"""
裁剪图像,并确保裁剪区域在图像尺寸范围内,然后保存裁剪后的图像
:param image_path: 原始图像文件路径
:param width: 裁剪区域的宽度
:param height: 裁剪区域的高度
"""
# 读取图像
image = cv2.imread(image_path)
# 检查图像是否成功加载
if image is None:
print(f"无法加载图像:{image_path}")
return False
# 获取图像的原始尺寸
image_height, image_width = image.shape[:2]
print(f"图像的原始尺寸:{image_height}×{image_width}")
# 计算裁剪的起始点
start_x = (image_width - width) // 2
start_y = (image_height - height) // 2
# 裁剪图像
if start_x >= 0 and start_y >= 0:
cropped_img = image[start_y:start_y + height, start_x:start_x + width]
else:
print("Specified width and height are larger than the image dimensions.")
return
# 保存裁剪后的图像
output_path = image_path.split(".")[0] + f"_{width}-{height}" + f"_center" + "." + image_path.split(".")[1]
cv2.imwrite(output_path, cropped_img)
# 使用示例
image_path = 'image.png' # 替换为你的图像路径
output_path = 'cropped_image_center.png' # 输出图像的路径
width = 700 # 指定的宽度
height = 700 # 指定的高度
crop_image(image_path, width, height)
本篇文章来源于微信公众号: 码农设计师