Неправильная окраска Python opencv / cv2 - PullRequest
0 голосов
/ 30 апреля 2018

Пример изображения: Example image

Я работаю над проектом на Python с OpenCV, где мне нужно немного поменять цвета изображения, чтобы сделать его темнее. Пока все шло хорошо, за исключением того, что я получаю странные неправильные окраски на результирующем изображении, где большие области либо белые, либо фиолетовые, либо похожие. Смотрите прикрепленный пример. Я не могу найти никакого объяснения этому даже после интенсивного поиска в Google. Есть идеи, что может быть причиной этого?

Мой код выглядит так:

poster = stbt.load_image("test1.png")
b, g, r = cv2.split(poster)
val = 40
b -= val
g -= val
r -= val
poster = cv2.merge((b, g, r))
cv2.imshow("frame2", poster)
cv2.waitKey(0)
cv2.destroyAllWindows()

1 Ответ

0 голосов
/ 30 апреля 2018

Спасибо всем! Я перепробовал много вещей, включая предложения выше. Мне удалось избавиться от неправильной окраски, но я так и не смог получить желаемый результат. Однако я нашел это https://pillow.readthedocs.io/en/3.0.x/index.html, которое, похоже, должно быть способным для меня.

Edit: Я проверил вышеупомянутое решение, и оно работало нормально :). Смотрите пример ниже:

from PIL import Image, ImageEnhance

img = Image.open("dev/poster.png")
br = ImageEnhance.Brightness(img)
img = br.enhance(0.7)
img.show("")
...