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

运行结果如下所示:


相关推荐
王者鳜錸20 分钟前
讯飞语音唤醒+语音识别+语音合成+文生图完整集成实战
人工智能·文生图·语音识别·xcode·语音生图
码农小白AI26 分钟前
AI报告文档审核助力排气烟度精准管控:IACheck守护绿色动力环境与合规发展新底线
大数据·人工智能
深圳市快瞳科技有限公司30 分钟前
高精度宠物鼻纹识别算法原理解析:从图像采集到特征匹配
人工智能·计算机视觉·智慧城市
DX_水位流量监测32 分钟前
德希科技在线 pH 传感器
人工智能·科技·水质监测·水质传感器·水质厂家·供水水质监测·污水监测
热点速递35 分钟前
苹果首款AI穿戴硬件“Apple Pin”曝光:配iPhone的“AI眼睛”,能否突破独立局限?
人工智能·业界资讯
Java后端的Ai之路1 小时前
Milvus 向量数据库从入门到精通:AI 时代的“记忆中枢“实战指南(建议收藏!)
数据库·人工智能·milvus·向量数据库·rag
xixixi777771 小时前
AI的“血管”:从大模型需求看6G、高速光纤与智算中心网络的技术变革
人工智能·ai·大模型·算力·通信·光纤·政策
AI科技星1 小时前
光速螺旋量子几何统一场论——基于 v ≡ c 公理的四大基本力全维度求导证明与精准数值验证
c语言·开发语言·人工智能·算法·机器学习·平面
云烟成雨TD1 小时前
Spring AI 1.x 系列【17】函数型工具开发与使用
java·人工智能·spring