python 使用opencv 来降低一张图片的色调和色温和饱和度
时间: 2023-08-10 15:04:33 浏览: 73
可以使用opencv中的cv2.cvtColor()函数来降低图片的色调和色温,使用cv2.addWeighted()函数来调整图片的饱和度。
以下是一个示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('example.jpg')
# 降低色调和色温
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hsv[:, :, 1] -= 30
hsv[:, :, 2] -= 30
img = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
# 调整饱和度
alpha = 1.5
beta = -0.5 * 255 * (alpha - 1)
img = cv2.addWeighted(img, alpha, np.zeros_like(img), 0, beta)
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在代码中,我们首先读取了一张图片,并将其转换为HSV颜色空间。然后,我们通过减少饱和度和亮度来降低图片的色调和色温。最后,我们使用cv2.addWeighted()函数来调整图片的饱和度,其中alpha参数控制饱和度的变化量,beta参数控制亮度的变化量。最终结果可以使用cv2.imshow()函数来显示。
相关问题
python 使用opencv 来降低一张图片的色调和色温
可以使用OpenCV的调整颜色功能来降低一张图片的色调和色温。具体步骤如下:
1. 导入所需的库
``` python
import cv2
import numpy as np
```
2. 读取图片
``` python
img = cv2.imread('image.jpg')
```
3. 调整色调和色温
使用 `cv2.cvtColor()` 函数来将图片从BGR颜色空间转换为HSV颜色空间,然后通过修改HSV值来调整色调和色温。
``` python
# 将图片从BGR转换为HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 修改HSV值来调整色调和色温
h, s, v = cv2.split(hsv)
h += 10 # 增加色调值
v -= 10 # 减少亮度值
hsv = cv2.merge((h, s, v))
# 将图片从HSV转换回BGR
result = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
```
4. 显示结果
``` python
cv2.imshow('Original Image', img)
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
完整代码如下:
``` python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('image.jpg')
# 将图片从BGR转换为HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 修改HSV值来调整色调和色温
h, s, v = cv2.split(hsv)
h += 10 # 增加色调值
v -= 10 # 减少亮度值
hsv = cv2.merge((h, s, v))
# 将图片从HSV转换回BGR
result = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
python 使用opencv 来降低饱和度
可以使用 OpenCV 中的 cv2.cvtColor() 函数来降低图像的饱和度。该函数将图像从一种颜色空间转换为另一种颜色空间。在这种情况下,我们将图像从 BGR 颜色空间转换为 HSV 颜色空间,然后降低饱和度。
以下是一段代码示例:
```python
import cv2
# 加载图像
img = cv2.imread('image.jpg')
# 将图像从 BGR 转换为 HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 降低饱和度
hsv[:,:,1] = hsv[:,:,1] * 0.5
# 将图像从 HSV 转换回 BGR
result = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
# 显示结果图像
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先将图像从 BGR 转换为 HSV 颜色空间,并将其存储在名为 hsv 的变量中。然后,我们将 hsv 中的饱和度通道乘以 0.5,从而将饱和度减少了一半。最后,我们将图像从 HSV 转换回 BGR 颜色空间,并在屏幕上显示结果图像。