在Python中使用OpenCV旋转图像时指定背景色

时间:2018-11-01 17:55:44

标签: python image opencv cv2

我正在尝试使用带有以下代码的OpenCV在Python中旋转图像:

import cv2

img = cv2.imread("image.png")

rows = img.shape[0]
cols = img.shape[1]

img_center = (cols / 2, rows / 2)
M = cv2.getRotationMatrix2D(img_center, 45, 1)

rotated_image = cv2.warpAffine(img, M, (cols, rows))

代码可以正常工作,但是不再可见图像的背景变为黑色。我希望背景为白色,因此我想知道是否可以指定旋转时应使用的颜色OpenCV

我找到了similar question,但发现了PIL

1 个答案:

答案 0 :(得分:3)

warpAffine参数borderMode可用于控制背景的处理方式。您可以将其设置为cv2.BORDER_CONSTANT以使背景成为纯色,然后使用参数borderValue选择颜色。例如,如果您想要绿色背景,请使用

rotated_image = cv2.warpAffine(img, M, (cols, rows),
                           borderMode=cv2.BORDER_CONSTANT,
                           borderValue=(0,255,0))