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

运行结果如下所示:


相关推荐
编码小哥2 小时前
OpenCV Haar级联分类器:人脸检测入门
人工智能·计算机视觉·目标跟踪
程序员:钧念2 小时前
深度学习与强化学习的区别
人工智能·python·深度学习·算法·transformer·rag
数据与后端架构提升之路3 小时前
TeleTron 源码揭秘:如何用适配器模式“无缝魔改” Megatron-Core?
人工智能·python·适配器模式
Chef_Chen3 小时前
数据科学每日总结--Day44--机器学习
人工智能·机器学习
这张生成的图像能检测吗3 小时前
(论文速读)FR-IQA:面向广义图像质量评价:放松完美参考质量假设
人工智能·计算机视觉·图像增强·图像质量评估指标
KG_LLM图谱增强大模型4 小时前
本体论与知识图谱:揭示语义技术的核心差异
人工智能·知识图谱·本体论
JicasdC123asd4 小时前
黄瓜植株目标检测:YOLOv8结合Fasternet与BiFPN的高效改进方案
人工智能·yolo·目标检测
爱吃泡芙的小白白5 小时前
深入解析:2024年AI大模型核心算法与应用全景
人工智能·算法·大模型算法
小程故事多_805 小时前
攻克RAG系统最后一公里 图文混排PDF解析的挑战与实战方案
人工智能·架构·pdf·aigc
琅琊榜首20205 小时前
AI+编程双驱动:高质量短剧创作全流程指南
人工智能