Rotate image by 90, 180 or 270 degrees

后端 未结 11 2261
一个人的身影
一个人的身影 2020-12-01 07:48

I need to rotate an image by either 90, 180 or 270 degrees. In OpenCV4Android I can use:

Imgproc.getRotationMatrix2D(new Point(center, center), degrees, 1);         


        
11条回答
  •  南笙
    南笙 (楼主)
    2020-12-01 08:42

    I wrote this Python version using Numpy only, which are much faster than using cv2.transpose() and cv2.flip().

    def rotate_image_90(im, angle):
        if angle % 90 == 0:
            angle = angle % 360
            if angle == 0:
                return im
            elif angle == 90:
                return im.transpose((1,0, 2))[:,::-1,:]
            elif angle == 180:
                return im[::-1,::-1,:]
            elif angle == 270:
                return im.transpose((1,0, 2))[::-1,:,:]
    
        else:
            raise Exception('Error')
    

提交回复
热议问题