PHP前端开发

Python图片裁剪后如何转换坐标?

百变鹏仔 3天前 #Python
文章标签 坐标

python图片裁剪及坐标转换

如何裁剪图片?

使用opencv的numpy切片操作或numpy的hsplit函数可以裁剪图片。以下为示例代码:

import cv2import numpy as npimg = cv2.imread('image.jpg')sub_img = img[y1:y2, x1:x2].copy()  # 用切片操作裁剪图片

如何转换裁剪后图片的坐标?

立即学习“Python免费学习笔记(深入)”;

当裁剪后的图片被转换到原图时,其坐标需要进行转换。对于在原图左上角的裁剪,其坐标保持不变。对于在原图内部的裁剪,其坐标需要加上裁剪区域在原图中的位置:

原图坐标 = 裁剪后图片坐标 + (裁剪区域左上角原图坐标)

例如,原图大小为1000x1000,裁剪了一块大小为200x200的图片,裁剪区域在原图中的左上角坐标为(200, 300)。那么,裁剪后图片中左上角的坐标(10, 20)在原图中的坐标为:

原图坐标 = (10, 20) + (200, 300) = (210, 320)

更深入的解决方法:

使用上述的切片操作或hsplit函数裁剪图片。使用numpy广播计算裁剪后图片的坐标转换。

使用pillow的crop方法裁剪图片。使用split_box函数计算裁剪后图片的坐标转换。

这些方法提供了解决python图片裁剪和坐标转换的有效途径,可以根据特定需要选择合适的实现方案。