随笔 - 383  文章 - 0  评论 - 0  阅读 - 35557 

1. 说明

 有时候需要从图像中判断某种颜色,或者获取某个颜色区域,此时常用HSV色板判断。因为在HSV的色彩空间中,只需要判断颜色通道即可。本篇介绍HSV色板,及其在python中的转换和使用方法。

2. 色板

(1) RGB

 三个通道,红色Red, 绿色Green, 蓝色Blue,值越大颜色越大,当三个值都大时为白色,三个值都为0时为黑色。

(1) HSV

 三个通道,HSV(Hue, Saturation, Value)是根据颜色的直观特性创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。

(1) GRAY
 灰度图,只有一个通道。

3. 图示代码

import cv2 as cv
from matplotlib import pyplot as plt
% matplotlib inline

img = cv.imread('/tmp/ff.jpeg')
rgb = cv.cvtColor(img, cv.COLOR_BGR2RGB)
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
plt.figure(figsize=(9,7), dpi=800)
plt.subplot(3, 3, 1), plt.imshow(rgb), plt.title("base")
plt.subplot(3, 3, 2), plt.imshow(rgb[:,:,0],'gray'), plt.title("red")
plt.subplot(3, 3, 3), plt.imshow(rgb[:,:,1],'gray'), plt.title("green")
plt.subplot(3, 3, 4), plt.imshow(rgb[:,:,2],'gray'), plt.title("blue")
plt.subplot(3, 3, 5), plt.imshow(gray,'gray'), plt.title("gray")
plt.subplot(3, 3, 6), plt.imshow(hsv[:,:,0],'gray'), plt.title("H")
plt.subplot(3, 3, 7), plt.imshow(hsv[:,:,1],'gray'), plt.title("S")
plt.subplot(3, 3, 8), plt.imshow(hsv[:,:,2],'gray'), plt.title("V")
plt.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9, hspace=0.1, wspace=0.3)

plt.show()

4. 图示效果

5. 分析

 这里大多数的图和想象中差不多,比较特别的是H图,可以看到同样的底色白色,在H图中显示出很大差异。

 在判断一些图像成份时,可以采取多种标准,比如用灰度图(gray)或者亮度图(V)判断其是否为白色或浅色,而在颜色较深的区域再去判断其具体然调(H)

 当V大而S小时,即是白色。

posted on   xieyan0811  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示