人工智能计算机视觉先锋——OpenCv 的颜色检测

红色

在计算机的世界里,只有 0 或者1,如何让计算机认识颜色是计算机视觉工作者首先需要考虑的事情,我们知道整个世界的颜色虽然五彩缤纷,但是都是3种原色彩合成的(R G B),有了(R G B)三源色,便可以通过调节不同的颜色比例来达到其他颜色的效果。

在计算机的世界里面,我们定义了(R G B)三源色的像素都在(0-255之间),通过配置这些数字,便可以显示不同的色彩

首先定义一个数组colist:

复制代码
import numpy as np
import cv2
image = cv2.imread("11.jpg")

colist = [
	([17, 15, 100], [50, 56, 200]),
	([86, 31, 4], [220, 88, 50]),
	([25, 146, 190]	, [62, 174, 250]),
	([103, 86, 65], [145, 133, 128])
]

在RGB色彩空间,当然opencv是在BGR的空间,定义了四种不同颜色的像素,同时代表了R G B ,gray

在这里,我们说图像中所有具有R> = 100 ,G> = 15 和B> = 17 以及R <= 200 ,G<= 56 和B <= 50的 像素 将被视为 红色,

具有R> = 4 ,G> = 31 和B> = 86 以及R <= 50 ,G<= 88 和B <= 220的 像素将被视为绿色

具有R> = 190 ,G> = 146 和B> = 25 以及R <= 250 ,G<= 174 和B <= 62的 像素将被视为黄色

具有R> = 65 ,G> = 86 和B> = 103 以及R <= 128 ,G<= 133 和B <= 145的 像素将被视为灰色

有了这些颜色的定义,我们便可以使用上下限的颜色数据,对图片中的颜色进行检测,

复制代码
for (lower, upper) in colist:
	lower = np.array(lower, dtype = "uint8")
	upper = np.array(upper, dtype = "uint8")
	mask = cv2.inRange(image, lower, upper)
	output = cv2.bitwise_and(image, image, mask = mask)
	cv2.imshow("images", np.hstack([image, output]))
	cv2.waitKey(0)

首先使用cv2.inRange(image, lower, upper)函数进行图片颜色的筛选

复制代码
mask = cv2.inRange(image, lower, upper) 
函数参数有三个
第一个参数:image指的是原图

第二个参数:lower指的是图像中低于这个lower的值,图像值变为0

第三个参数:upper指的是图像中高于这个upper的值,图像值变为0

而在lower~upper之间的值变成255

黄色

按照红色为例:通过以上函数的筛选,不是红色区域的都被置为0,而红色区域都被置为255

经过以上步骤,mask便是一个黑白的照片,其中不是红色的区域为黑色,红色区域为白色

然后使用cv2.bitwise_and函数对图片进行与操作

cv2.bitwise_and()是对二进制数据进行"与"操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制"与"操作,1&1=1,1&0=0,0&1=0,0&0=0

利用掩膜(mask)进行"与"操作,即掩膜图像白色区域是对需要处理图像像素的保留,黑色区域是对需要处理图像像素的剔除

这样我们便可以删除了除红色区域以外的其他颜色,保留了红色,当然其他颜色具有类似的原理

代码截图

最后我们显示一下图片中的颜色

绿色

当然你也可以使用L*a*b颜色空间,或者hsv颜色空间,什么叫L*a*b颜色空间,或者hsv颜色空间

python神经网络一键格式化黑白视频为彩色视频

python神经网络一键转变黑白照片为彩色照片

以上2篇文章主要介绍了lab空间的颜色使用

hsv颜色空间的使用,可以参考小编的专栏《打造属于自己的天眼目标追踪系统》中的颜色追踪

复制代码
更多transformer,VIT,swin tranformer
参考头条号:人工智能研究所
v号:启示AI科技

动画详解transformer 在线教程

相关推荐
牧羊人.333几秒前
动手学深度学习 07|Resnet网络与迁移学习
网络·人工智能·深度学习·神经网络·算法·cnn·迁移学习
北方的银狐-Zero5 分钟前
OntoL 官网上线|数据打通 ≠ 业务打通,为大模型装上「认知底座」
人工智能·本体论
mlidongfeng7 分钟前
【学习】 NVIDIA CFT(Compute Fabric Transport)特性分析
人工智能·学习·fabric
miofly20 分钟前
OpenAI 模型为获取数据主动破坏运行环境,三起越权事件曝光
人工智能
SM_YHJ23 分钟前
RFID通道门禁与资产台账联动的自动登记技术实现方案
大数据·数据库·人工智能
数智奔流24 分钟前
智元是时候看回启元了
人工智能·具身智能·智元
a努力。31 分钟前
AI的万能转接线:MCP如何打通数据孤岛
人工智能
默_笙33 分钟前
🥖 给 Agent 装上耳朵和嘴巴:ASR + TTS 语音交互实战
人工智能
玫瑰互动GEO38 分钟前
AI时代下,GEM优化组织落地工程化:角色路由+KPI埋点+预算分配表
人工智能·ai搜索·gem·gem优化·生成式引擎营销
星云低代码开发平台39 分钟前
AI 业务工具授权复核:触发条件、权限双层校验与验收清单
人工智能·权限管理·系统集成