# without - rotate image python

## OpenCV Python rotate image by X degrees around specific point (4)

Or much easier use SciPy

``````from scipy import ndimage

#rotation angle in degree
rotated = ndimage.rotate(image_to_rotate, 45)
``````

see here for more usage info.

I'm having a hard time finding examples for rotating an image around a specific point by a specific (often very small) angle in Python using OpenCV.

This is what I have so far, but it produces a very strange resulting image, but it is rotated somewhat:

``````def rotateImage( image, angle ):
if image != None:
dst_image = cv.CloneImage( image )

rotate_around = (0,0)
transl = cv.CreateMat(2, 3, cv.CV_32FC1 )

matrix = cv.GetRotationMatrix2D( rotate_around, angle, 1.0, transl )
cv.GetRectSubPix( dst_image, image, rotate_around )

return dst_image
``````

Quick tweak to @alex-rodrigues answer... deals with shape including the number of channels.

``````import cv2
import numpy as np

def rotateImage(image, angle):
center=tuple(np.array(image.shape[0:2])/2)
rot_mat = cv2.getRotationMatrix2D(center,angle,1.0)
return cv2.warpAffine(image, rot_mat, image.shape[0:2],flags=cv2.INTER_LINEAR)
``````

``````def rotate(image, angle, center = None, scale = 1.0):
(h, w) = image.shape[:2]

if center is None:
center = (w / 2, h / 2)

# Perform the rotation
M = cv2.getRotationMatrix2D(center, angle, scale)
rotated = cv2.warpAffine(image, M, (w, h))

return rotated
``````

``````import imutils

vs = VideoStream(src=0).start()
...

while (1): 