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

我正在尝试使用 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旋转时应使用的颜色。


一只斗牛犬
浏览 535回答 1
1回答

慕慕森

该warpAffine参数borderMode可以用来控制背景将如何处理。您可以将其设置cv2.BORDER_CONSTANT为使背景为纯色,然后使用参数 选择颜色borderValue。例如,如果您想要绿色背景,请使用rotated_image = cv2.warpAffine(img, M, (cols, rows),                            borderMode=cv2.BORDER_CONSTANT,                            borderValue=(0,255,0))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python