openCV函数介绍
cv2的getRotationMatrix2D函数,通过将旋转的中心点坐标,旋转的角度,缩放比例作为参数传入即可得到中间旋转矩阵,warpAffine函数将通过这个矩阵,计算出旋转缩放后的图像,以及坐标(坐标单独有函数进行处理)
# 例子
M = cv2.getRotationMatrix2D((w * 0.5, h * 0.5), angle, scale)
new_image = cv2.warpAffine(Image, M, (int(math.ceil(nw)), int(math.ceil(nh))))
一、旋转和缩放介绍
图像旋转根据角度不同,有不同的处理,因为旋转角度小于90°,图像的四角坐标会改变,但顺序不会变化,保持左上-右上-右下-左下的顺序。但假如旋转的角度为90°,180°,或者270°,都不仅会改变坐标的值,而且会改变图像原来四个角坐标的顺序。这个特点在做图像增强处理的时候是要特别注意的,尤其在处理增强后的图像坐标的时候。
下面关于缩放的介绍内容来自中文手册:
http://woshicver.com/FifthSection/4_2_%E5%9B%BE%E5%83%8F%E5%87%A0%E4%BD%95%E5%8F%98%E6%8D%A2/
缩放只是调整图像的大小。为此,OpenCV带有一个函数cv.resize()。图像的大小可以手动指定,也可以指定缩放比例。也可使用不同的插值方法。首选的插值方法是cv.INTER_AREA用于缩小,cv.INTER_CUBIC(慢)和cv.INTER_LINEAR用于缩放。默认情况下,出于所有调整大小的目的,使用的插值方法为cv.INTER_L