假设我们有一张名为'img.j
pg
'的图像,以下是在Python中减少其背景色饱和度的代码示例:
import cv2
# 读取图像
img = cv2.imread('img.jpg')
# 转换为HSV颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 定义一个范围来减少背景饱和度
lower_saturation = 50
upper_saturation = 150
# 创建一个蒙版,同时将低于和高于范围的像素设置为0
mask = cv2.inRange(hsv, (0, lower_saturation, 0), (255, upper_saturation, 255))
# 将背景颜色饱和度减少为50%
hsv[:, :, 1][mask == 255] = hsv[:, :, 1][mask == 255]*0.5
# 转换回BGR颜色空间
result = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
# 显示结果图像
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
首先,我们需要读取图像并将其转换为HSV颜色空间。接下来,我们使用cv2.inRange()
函数创建一个蒙版,该蒙版将低于和高于我们定义的范围的像素设置为0,并将其他像素设置为255。然后,我们将背景的饱和度减少到原来的50%。最后,我们将结果图像转换回BGR颜色空间并显示它。
需调整lower_saturation
和upper_saturation
的值来更改颜色区间的大小。
若想将前景的饱和度降低,可使用以下代码: