Укажите цвет фона при повороте изображения с помощью OpenCV в Python - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь повернуть изображение в Python, используя OpenCV со следующим кодом:

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 должен использовать для его поворота.

Я нашел похожий вопрос , но для PIL.

1 Ответ

0 голосов
/ 01 ноября 2018

Параметр warpAffine borderMode можно использовать для управления обработкой фона. Вы можете установить значение cv2.BORDER_CONSTANT, чтобы сделать фон сплошным цветом, затем выберите цвет с параметром borderValue. Например, если вы хотите зеленый фон, используйте

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