旋转图像而不裁剪-OpenCV

5

问题是如何使用OpenCV旋转图像并保持原始尺寸。目前使用的函数是:

def rotateImage(image, angle):
   (h, w) = image.shape[:2]
   center = (w / 2, h / 2)
   M = cv2.getRotationMatrix2D(center,angle,1.0)
   rotated_image = cv2.warpAffine(image, M, (w,h))
   return rotated_image

此外,warpAffine中使用了什么样的算法(双三次?)

也许您可以将我的C++版本转换为Python:http://stackoverflow.com/questions/29944128/opencv-mat-rotation-gets-wrong-result/29945433#29945433 - Micka
1
根据http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html#warpaffine,warpaffine默认使用CV_INTER_LINEAR(即线性插值)。选择INTER_CUBIC进行双三次插值,选择INTER_LANCZOS4或INTER_NEAREST进行不同的方法。 - Micka
你可以查看我发现非常有用的这篇帖子 - Jeru Luke
1个回答

13

创建一张尺寸等于初始图片对角线长度的正方形图像。
将初始图像绘制在新图像中心。
旋转新图像。


在以下链接中找到相关代码 => https://dev59.com/pWEh5IYBdhLWcg3ww11p#33564950 - blacatus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接