旋转图片以及坐标映射(获取原始图片中点坐标旋转后对于点的坐标)
不扩充旋转图像(图像大小不变,适用于旋转目标在中心,与图像边缘有一定距离)
def rotate_bound(image, angle):
# 获取图像的尺寸,然后确定中心点
(h, w) = image.shape[:2]
#将图像中心设为旋转中心 也可以自己设置
(cX, cY) = (w // 2, h // 2)
#抓住旋转矩阵(应用角度的负值顺时针旋转),然后抓住正弦和余弦
#(即,矩阵的旋转分量)
# 这里的第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子
# 可以通过设置旋转中心,缩放因子,以及窗口大小来防止旋转后超出边界的问题
M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0)
#执行实际的旋转
# 第三个参数是输出图像的尺寸中心
rotated =cv2.warpAffine(image, M, (w, h))
# 返回旋转后的图像
return rotated
坐标映射
#参数x y 图像 角度
#返回图像旋转一定角度后的坐标
def get_point(x,y,image,angle):
(h, w) = image.shape[:2]
# 将图像中心设为旋转中心
(cX, cY) = (w // 2, h // 2)
#假设图像的宽度x高度为col*row, 图像中某个像素P(x1, y1),绕某个像素点Q(x2, y2)
#旋转θ角度后, 则该像素点的新坐标位置为(x, y),