说明
python-opencv读取的图片本就是numpy格式,利用矩阵的相关操作,可以快速完成图片的顺时针90度和逆时针90度。
本例子利用矩阵转置和镜像翻转的组合,可以快速实现图片的翻转。
代码
参考了别人的c++代码,完成了python版本的程序。
参考链接:https://blog.csdn.net/tianzhaixing2013/article/details/53037474
import cv2
# 顺时针旋转90度
def RotateClockWise90(img):
trans_img = cv2.transpose( img )
new_img = cv2.flip(trans_img, 1)
return new_img
# 逆时针旋转90度
def RotateAntiClockWise90(img):
trans_img = cv2.transpose( img )
new_img = cv2.flip( trans_img, 0 )
return new_img
def test_rot(img_path):
img = cv2.imread(img_path)
cv2.imshow('raw', img)
trans_img = cv2.transpose(img)
cv2.imshow( 'trans', trans_img )
clock90_img = RotateClockWise90(img)
cv2.imshow( 'clock90', clock90_img )
ant_clock90_img = RotateAntiClockWise90(img)
cv2.imshow('ant_clock90', ant_clock90_img)
key_ret = cv2.waitKey( 0 )
if __name__ == '__main__':
test_rot('./cv.jpg')
原图:
转置后的图片:
顺时针旋转90°后的图像:
逆时针选择90°后的图像: