首页Python【Python小程序】根据...

【Python小程序】根据指定坐标裁剪指定大小的图像

本系列文章配套代码获取有以下两种途径:

  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/1i9F6oV1J5oZnIsOASDs0gQ?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Python_mini_program





裁剪图像的本质是使用 NumPy 的切片功能从原始图像中提取出指定区域的图像数据。
本次定义了一个名为 crop_image 的函数,旨在从给定的图像文件中裁剪出一个指定的矩形区域,并保存这个裁剪后的图像。
该函数接受五个参数:image_path(原始图像文件路径),x 和 y(裁剪区域左下角的坐标),width 和 height(裁剪区域的宽度和高度)。
完整代码如下:
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)

本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments