opencv python 色相变换
时间: 2024-12-30 16:19:21 浏览: 40
### 色相变换实现
为了在 Python 中使用 OpenCV 进行色相变换,通常会先将图像的颜色空间从 BGR 或 RGB 转换到 HSV 颜色空间,在该颜色空间内调整 H(Hue)通道的值以达到改变色相的效果。完成色相修改后再转换回原来的颜色空间。
HSV 是一种常用的颜色表示模型,其中:
- **H** 表示色调(Hue),范围通常是 [0, 179];
- **S** 表示饱和度(Saturation),范围是 [0, 255];
- **V** 表示亮度(Value),同样取值区间为 [0, 255]。
下面是一个简单的例子展示如何利用 `cv2.cvtColor()` 函数来进行色彩空间之间的相互转化并实施色相变化[^3]。
```python
import numpy as np
import cv2
def adjust_hue(image, hue_shift):
# 将输入图片由BGR转成HSV格式
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 对Hue分量做偏移操作
h, s, v = cv2.split(hsv_image)
h = (h.astype(np.int16) + int(hue_shift)) % 180
adjusted_hsv = cv2.merge([h.astype(np.uint8), s, v])
# 把处理后的HSV再变回到BGR显示出来
result_image = cv2.cvtColor(adjusted_hsv, cv2.COLOR_HSV2BGR)
return result_image
# 加载测试用图
img = cv2.imread('flowers.png')
cv2.imshow('Original Image', img)
# 应用色相变换函数,这里设置hue_shift参数为+50作为示范
shifted_img = adjust_hue(img, 50)
cv2.imshow('Shifted Hue Image', shifted_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码展示了怎样加载一张名为 "flowers.png" 的图片文件,并对其应用了一个正向的色相位移(+50),最后显示出原始以及经过色相调整之后的结果对比图。
阅读全文
相关推荐


















