OpenCV技术应用(6)— 暖色滤镜和冷色滤镜

**前言:****Hello大家好,我是小哥谈。**本节课就手把手教大家如何将一幅图像转化成暖色滤镜和冷色滤镜,希望大家学习之后能够有所收获~!🌈

目录

🚀1.技术介绍

🚀2.暖色滤镜

🚀3.冷色滤镜

🚀1.技术介绍

暖色滤镜又可以称作"暖色调"。需要注意的是,色调指的不是颜色,而是对一幅图像整体颜色的评价。通常可以从色相、明度、冷暖、纯度这4个方面来定义一幅图像的色调。例如,一幅图像有明确的色调:红调子是从色相来说的;稍暗的调子是从明度来说的;暖调子是从冷暖来说的;灰调子是从纯度来说的。

本案例的目的是让下图所示的图像实现暖色滤镜的效果。所谓暖色滤镜,就是让一幅图像的整体颜色偏红,进而达到暖色调的效果。

冷色滤镜又可以称作"冷色调"。其中,冷色调是按冷暖来说的。本实例的目的是让下图所示的图像实现冷色滤镜的效果。所谓冷色滤镜,就是让一幅图像的整体颜色偏蓝,进而达到冷色调的效果。


🚀2.暖色滤镜

一幅图像是由红色、绿色、蓝色这3个通道组成的,颜色通道一般有RGB和BGR两种,其中OpenCV采用的颜色通道是BGR。要想让一幅图像实现暖色滤镜的效果,即让一幅图像的整体颜色偏红,就要对这幅图像进行拆分通道处理。为了拆分图像中的通道,OpenCV提供了split()方法 。当使用split()方法按B→G→R的顺序拆分通道时,split()方法的语法格式如下所示:

python 复制代码
b, g, r = cv2.split(rgb_image)

参数说明:

b:B通道图像;

g:G通道图像;

r:R通道图像;

rgb_image:一幅RGB图像。

拆分图像中的通道后,调整R通道的值,即可实现暖色滤镜的效果。调整R通道的值的关键代码如下所示:

python 复制代码
r[:, :] = 255

为了在窗口显示这幅图像实现暖色滤镜的效果,就要对拆分且调整后的通道进行合并。因此,要借助OpenCV中用于合并通道的merge()方法。当使用merge()方法按B→G→R的顺序合并通道时,merge()方法的语法格式如下所示:

python 复制代码
bgr = cv2.merge([b, g, r])

参数说明:

bgr:按B→G→R的顺序合并通道后得到的图像;

b:B通道图像;

g:G通道图像;

r:R通道图像。

具体的实现代码如下所示:

python 复制代码
import cv2

img = cv2.imread(r"C:\Users\Lenovo\PycharmProjects\yolov5-master1\data\images\1.jpg") # 读取当前项目文件夹下的图像
cv2.imshow("rgb_image", img) # 窗口显示读取到的图像
b, g, r = cv2.split(img) # 拆分图像1.jpg的通道
r[:, :] = 255 # 将R通道的值调整为255
bgr_255 = cv2.merge([b, g, r]) # 按B→G→R的顺序合并通道
cv2.imshow("bgr_255", bgr_255) # 窗口显示R通道的值被调整为255的图像
cv2.waitKey() # 按下键盘上的任意按键后
cv2.destroyAllWindows() # 销毁显示图像的所有窗口

运行结果如下所示:


🚀3.冷色滤镜

要想让一幅图像实现冷色滤镜的效果,即让一幅图像的整体颜色偏蓝,就要对这幅图像进行拆分通道处理。为了拆分图像中的通道,OpenCV提供了split()方法。当使用split()方法按B→G→R的顺序拆分通道时,split()方法的语法格式如下所示:

python 复制代码
b, g, r = cv2.split(rgb_image)

参数说明:

b:B通道图像;

g:G通道图像;

r:R通道图像;

rgb_image:一幅RGB图像。

拆分图像中的通道后,调整B通道的值,即可实现冷色滤镜的效果。调整B通道的值的关键代码如下所示:

python 复制代码
b[:, :] = 255

为了在窗口显示这幅图像实现冷色滤镜的效果,就要对拆分且调整后的通道进行合并。因此,要借助OpenCV中用于合并通道的merge()方法。当使用merge()方法按B→G→R的顺序合并通道时,merge()方法的语法格式如下所示:

python 复制代码
bgr = cv2.merge([b, g, r])

参数说明:

bgr:按B→G→R的顺序合并通道后得到的图像;

b:B通道图像;

g:G通道图像;

r:R通道图像。

具体的实现代码如下所示:

python 复制代码
import cv2

img = cv2.imread(r"C:\Users\Lenovo\PycharmProjects\yolov5-master1\data\images\1.jpg") # 读取当前项目文件夹下的图像
cv2.imshow("rgb_image", img) # 窗口显示读取到的图像
b, g, r = cv2.split(img) # 拆分图像1.jpg的通道
b[:, :] = 255 # 将B通道的值调整为255
bgr_255 = cv2.merge([b, g, r]) # 按B→G→R的顺序合并通道
cv2.imshow("bgr_255", bgr_255) # 窗口显示B通道的值被调整为255的图像
cv2.waitKey() # 按下键盘上的任意按键后
cv2.destroyAllWindows() # 销毁显示图像的所有窗口

运行结果如下所示:


相关推荐
zskj_zhyl27 分钟前
AI健康小屋“15分钟服务圈”:如何重构社区健康生态?
大数据·人工智能·物联网
荔枝味啊~33 分钟前
相机位姿估计
人工智能·计算机视觉·3d
mozun20201 小时前
激光雷达信号提取方法对比梳理2025.7.8
目标检测·激光雷达·信号提取·gm-apd·滤波算法
陈纬度啊1 小时前
自动驾驶ROS2应用技术详解
人工智能·自动驾驶·unix
开开心心_Every2 小时前
全能视频处理工具介绍说明
开发语言·人工智能·django·pdf·flask·c#·音视频
xunberg2 小时前
AI Agent 实战:将 Node-RED 创建的 MCP 设备服务接入 Dify
人工智能·mcp
江瀚视野2 小时前
美团即时零售日订单突破1.2亿,即时零售生态已成了?
大数据·人工智能·零售
KaneLogger2 小时前
AI模型与产品推荐清单20250709版
人工智能·程序员·开源
中电金信2 小时前
中电金信 :十问高质量数据集:金融大模型价值重塑有“据”可循
人工智能·金融
吕永强3 小时前
算法化资本——智能投顾技术重构金融生态的深度解析
人工智能·科普