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() # 销毁显示图像的所有窗口

运行结果如下所示:


相关推荐
动物园猫12 分钟前
校园异常行为目标检测数据集:5类别 | 目标检测
人工智能·目标检测·计算机视觉
ShallWeL21 分钟前
NVIDIA Jetson 早期系列演进
人工智能·嵌入式硬件·边缘计算·智能硬件
IT_陈寒33 分钟前
SpringBoot自动装配坑了我一天,原来问题出在这
前端·人工智能·后端
lisw051 小时前
社会技术需要社会协调!
人工智能·机器学习·软件工程
血小溅1 小时前
Claude Code 高效使用指南:让 AI 真正完成任务,而不只是生成代码
人工智能
ZGi.ai1 小时前
ZGI工作流引擎:把AI应用的执行过程从黑盒变成流程图
人工智能·低代码·流程图·ai应用·ai工作流·zgi
物联网软硬件开发-轨物科技2 小时前
【轨物方案】从传感器到AI诊断:箱变智能化技术栈四层架构精讲
人工智能·架构
星期一研究室2 小时前
创作分发这件事,来看看Codex是怎么做的
人工智能·黑客·微信
LLM精进之路2 小时前
把论文变成可提问的科研知识库:Zotero + Obsidian + Codex(ChatGPT 5.6)联动升级版教程,让你释放双手
人工智能
爱学习的章鱼哥2 小时前
一些AI实操的经验与感想
人工智能·ai·ai作画·ai编程·ai写作·ai经验