【发布时间】:2018-05-02 21:52:36
【问题描述】:
我正在使用 OpenCV 在 Python 中开发一个项目,我需要稍微淡化图像的颜色以使其更暗。到目前为止一切都还不错,只是我在生成的图像中出现了奇怪的错误着色,其中大面积是白色或紫色或类似的。请参阅随附的示例。即使经过广泛的谷歌搜索,我也找不到任何解释。有什么想法可能导致这种情况吗?
我的代码如下所示:
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()
【问题讨论】:
-
看起来像下溢——我猜你减去没有饱和,但由于你没有显示你的代码,所以很难告诉你到底做错了什么。
-
您应该使用伽马校正以避免错误着色。示例:https://www.pyimagesearch.com/2015/10/05/opencv-gamma-correction/
-
请edit 你的问题,而不是在评论中发布未格式化的代码。
-
抱歉:) 请查看代码和图片示例
-
你总是可以使用来自 OpenCV 的subtract,它会为你做饱和,你可以传递一个标量......你不需要做拆分或合并。此外,您也可以尝试像@Mika72 的回答一样进行伽马校正