Правильно ли повернуть изображение в OpenCV?

У меня есть следующий метод для вращения изображений (Python):

> def rotateImage(image, angle):
>     row,col = image.shape[0:2]
>     center=tuple(np.array([row,col])/2)
>     rot_mat = cv2.getRotationMatrix2D(center,angle,1.0)
>     new_image = cv2.warpAffine(image, rot_mat, (col,row))
>     return new_image

Это оригинальная картина: оригинал

Это повернутое (на 15 градусов) изображение, которое возвращает OpenCV: Повернуто CV2 Это изображение, если я поворачиваю изображение вокруг центра в фотошопе: Повернуто PS

Это два наложенных изображения: введите описание изображения здесь

Очевидно, что есть разница. Я уверен, что Photoshop сделал это правильно (или лучше - я сделал это правильно в фотошопе), чего мне не хватает?

1 ответ

Как указано в комментариях, координаты X и Y вашего центра меняются местами. Первый параметр cv2.getRotationMatrix2D- точка, где X - первая, а Y - вторая.

Другие вопросы по тегам