【OpenCV学习】OpenCV的色彩空间

二.OpenCV基础知识和绘制图形 2. OpenCV基础知识和绘制图形 ###2.1 OpenCV的色彩空间 2.1.1 RGB和BGR 最常见的色彩空间就是RGB, 人眼也是基于RGB的色彩空间去分辨 颜色的. OpenCV默认使用的是BGR. BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同. 显示图片的时候需要注意适配图片的色彩空间和显示环境的色彩空间.比如传入的图片是BGR色彩空间, 显示环境是RBG空间, 就会出现颜色混乱的情况. 2.1. 2 HSV, HSL和YUV 2.1.2.1 HSV OpenCV用的 阅读详情

🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。

前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:OpenCV从入门到放弃 ,一个学习OpenCV的专栏~

专栏文章直链:
【OpenCV学习】初识OpenCV其二
【OpenCV学习】初识OpenCV人生苦短,我用python

RGB

类似 Matplotlib 等软件使用这标准的色彩空间(人眼也是这么看世界的颜色)。
R 就是 Red 的缩写;G 就是 Green 的缩写;B 就是 Blue 的缩写。

BGR

这是 OpenCV 默认显示的色彩空间。
字母缩写含义同 RGB 。

HSV / HSB

这是 OpenCV 里用的最多的色彩空间。
为什么常用,因为可以仅仅通过第一个字母 H 即 Hue 来判断色彩颜色:

在这里插入图片描述
三个字母含义如下:

  • H

    • Hue :色相,即色彩,如红色,蓝色,用角度度量,范围 0°~360° ,从红色开始逆时针计算(红色0°,绿色120°,蓝色240°)。
    • 在上图中是圆周上弧长对应的圆心角不同。
    • 颜色表盘:在这里插入图片描述
  • S

    • Saturation :饱和度,表示颜色接近光谱色的程度,可以理解为纯色中混入白色的量;理解成溶液的话就是,在纯浅色溶质中加入了白色的溶剂(综合)。范围 0%~100% ,值越大,越饱和。
    • 在上图中是圆心到圆周之间半径上的长度不同。
  • V / B

    • Value / Bright :明度 / 亮度,范围 0%(黑)~100%(白)。

HSL

字面意思与 HSV 一致,但这里的 S 指的是颜色的纯度;理解成溶液的话就是,在纯浅色溶质中加入了无色的溶剂(稀释)。这里的 L 在顶部是纯白色,底部是纯黑色,不管是什么 Hue 颜色。

在这里插入图片描述

HSV(B) 与 HSL 图解区别:

在这里插入图片描述

对比 HSV(B) 和 HSL 的区别:

  • HSB :S 控制纯色中混入白色的量,值越大,白色越少,颜色越纯。
  • HSB :B 控制纯色中混入白色的量,值越大,白色越少,颜色越纯。
  • HSL :S 和黑白没有关系,饱和度不控制颜色中混入黑白的多少。
  • HSL :L 控制纯色中混入的黑白两种颜色。

YUV

一种颜色编码的方法,在以前看有线电视、卫星电视时,为了能使用有限的带宽进行较快的响应,所以采用这种编码方式,既能满足人眼需求,又能占用极少的带宽。其发明是在彩色电视与黑白电视的过渡时期。

  • Y :明亮度,也就是灰阶值(黑白电视的编码)。
  • U 、V :色度, 用于描述影像色彩及饱和度,用于指定像素的颜色。

不同比例的区别:

  • 4:4:4 :表示完全采样(没有压缩,带宽最大)。
  • 4:2:2 :表示2:1的水平取样,垂直完全采样。
  • 4:2:0 :表示2:1的水平取样,垂直2:1采样(用的最多)。
  • 4:1:1 :表示4:1的水平取样,垂直完全采样。

OpenCV中的颜色转换方法

应该不会有人会想记住所有形式吧?
在PyCharm中,输入前缀即可查看:
在这里插入图片描述
在Jputer中,按下 Tab 键即可打开提示:

在这里插入图片描述
输入的越多,提示的越细:
在这里插入图片描述
实际的小栗子(变色猫):

from cv2 import cv2


def callback(value):
    pass


cv2.namedWindow('color', cv2.WINDOW_NORMAL)
cv2.resizeWindow('color', 640, 480)
# 读取图片,OpenCV读进来的图片默认是BGR的色彩空间。
img= cv2.imread('./cat.jpeg')
# 定义颜色空间转化方法。
color_spaces = [
    # 所有颜色空间的转化都是COLOR开头。
    cv2.COLOR_BGR2RGBA, cv2.COLOR_BGR2BGRA,
    cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV,
    cv2.COLOR_BGR2YUV
]
# 设置trackbar
cv2.createTrackbar('trackbar', 'color', 0, 4, callback)
while True:
    # 获取trackbar的值
    index = cv2.getTrackbarPos('trackbar', 'color')
    # 进行颜色空间转换
    cvt_img = cv2.cvtColor(img, color_spaces[index])
    cv2.imshow('color', cvt_img)
    if cv2.waitKey(10) == ord('q'):
        break
cv2.destroyAllWindows()

或者使用 callback 函数进行处理:

from cv2 import cv2


def callback(value):
    # 进行颜色空间转换
    cvt_img = cv2.cvtColor(img, color_spaces[value])
    cv2.imshow('color', cvt_img)


cv2.namedWindow('color', cv2.WINDOW_NORMAL)
cv2.resizeWindow('color', 640, 480)
# 读取图片,OpenCV读进来的图片默认是BGR的色彩空间。
img = cv2.imread('./cat.jpeg')
# 定义颜色空间转化方法。
color_spaces = [
    # 所有颜色空间的转化都是COLOR开头。
    cv2.COLOR_BGR2RGBA, cv2.COLOR_BGR2BGRA,
    cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV,
    cv2.COLOR_BGR2YUV
]
# 设置trackbar
cv2.createTrackbar('trackbar', 'color', 0, 4, callback)
callback(0)
cv2.waitKey(0)
cv2.destroyAllWindows()

滑动 trackbar 就能看到不同的处理后的猫~
(RGBA 与 RGB ) 或 (BGRA 与 BGR) 的区别就在于, A 是透明度,一般保存 png 文件才会有。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

opencv-18 什么是色彩空间? 色彩空间类型,也称为颜色空间类型或色彩模型,是一种表示图像中颜色的方式。在计算机图形学和数字图像处理中,有许多种色彩空间类型,每种类型有不同的表达方式和特点。常见的色彩空间类型包括:RGB 是最常见和广泛使用的色彩空间类型。它使用红色(R)、绿色(G)和蓝色(B)三个通道来表示颜色。每个通道的取值范围通常是 0 到 255,其中 0 表示最小强度(无颜色),255 表示最大强度(全颜色)。HSV 色彩空间是基于人类视觉感知的方式来表示颜色。 阅读详情

相关推荐

有关opencv的学习(6)—图像的HSV色彩空间

HSV色彩空间,即为用图像的色调(Hue),饱和度(Saturation),明度(Value)来描述颜色,即为颜色的直观特性。也称六角锥体模型,如下图所示: 色调——表示主色:绿色,黄色,红色。 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°; 饱和度——表示颜色

qq_35724402的博客 2154

opencv中的色彩空间及其转换

opencv中的颜色空间,及其转换

游客520 1734

OpenCV计算机视觉实战(7)——色彩空间详解

本文深入探讨了三种常见色彩空间:RGB/BGR、HSV 与 CIELAB,并介绍了 OpenCV 中色彩空间转换的方法与原理 。在 HSV 与 Lab 空间部分,演示了如何利用 HSV 进行色彩分割,以及使用 Lab 空间进行颜色校正与色差分析。最后,展示了如何使用 cv2.calcHist 计算颜色直方图,并结合 Matplotlib 对 BGR 通道直方图进行可视化分析,以支持图像增强和基于颜色的检索任务 。

qq_30167691的博客 2217

OpenCV 色彩空间转换

一种抽象的数学模型,以不同的维度和表示方式,色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间。我们经常用到的色彩空间主要有RGB、CMYK、Lab等。```python Gray = 0.299*R + 0.587*G + 0.114*B ``` 这种权重分布是基于人眼对不同颜色的敏感度来设计的。人眼对绿色的敏感度最高,红色次之,蓝色最低。这是因为人眼中的视网膜上有三种类型的颜色感受器,分别对红色、绿色和蓝色光最为敏感。

m0_74154295的博客 3659

Ubuntu单系统安装全攻略:从删除Windows到UEFI引导设置(避坑指南)

本文提供Ubuntu单系统安装的完整指南,涵盖从安全删除Windows系统到UEFI引导设置的详细步骤。通过专业工具准备、分区方案设计、引导加载器配置等关键环节,帮助用户避免常见安装问题,实现纯净高效的Ubuntu单系统环境。特别强调UEFI引导的深度配置与安装后的性能优化,适合希望彻底转向Linux的用户。

weixin_29210727的博客 410

Python验证码识别神器ddddocr:5分钟搞定网站登录自动化(附完整代码)

本文详细介绍了如何使用Python开源库ddddocr快速实现验证码识别,结合Selenium完成网站登录自动化。ddddocr作为轻量级OCR工具,支持多种验证码类型,识别速度快且准确率高,特别适合自动化测试和爬虫开发。文章包含完整代码示例,从环境配置到实战应用,帮助开发者5分钟内实现验证码破解。

sprite的博客 798

OPENCV学习指南——色彩空间

RGB色彩空间是最常见的色彩表示方式,它通过红(Red)、绿(Green)、蓝(Blue)三种颜色通道的不同强度组合来表示各种颜色。在计算机图形和图像处理领域应用广泛,如显示器、数字图像存储等场景。在RGB色彩空间中,每个通道的取值范围通常是0 - 255(8位表示),0代表该颜色分量完全没有,255表示该颜色分量达到最大强度。例如,纯红色为(255, 0, 0),纯绿色为(0, 255, 0),纯蓝色为(0, 0, 255),白色是(255, 255, 255),黑色是(0, 0, 0)。

m0_74128723的博客 719

Upwork入门指南:如何创建吸引人的个人资料

本文详细介绍了如何在Upwork上创建并优化个人资料,帮助自由职业者吸引更多客户。内容包括: 注册与验证:从注册账号到邮箱验证的完整步骤。 个人资料填写:如何撰写吸引人的标题、简介,选择技能标签,以及设置专业头像和费率。 作品集与优化:上传高质量作品集,提升搜索排名和客户信任度。 常见问题解答:解决新手常见问题,如无工作经验或审核不通过。 通过本文的指导,你将学会打造一个专业且高效的个人资料,为在Upwork上获得更多机会奠定基础。

qq_61813593的博客 3521

opencv学习四:色彩空间转换

一、常见的色彩空间 RGB颜色空间 RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同 的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示

weixin_44145452的博客 1324

【INMP441】 MEMS麦克风,让硬件“听得见”,更要“听得清”

INMP441是一款数字MEMS麦克风,采用PDM接口输出高质量数字音频信号。相比传统模拟麦克风,它具有高度集成、抗干扰强、功耗低等优势,支持通过时钟启停实现软件控制开关。该麦克风体积小巧但功能强大,内置MEMS传感器、ADC转换器等模块,适合智能音箱、语音遥控等应用。工程师可通过ESP32等主控芯片轻松连接INMP441,利用多麦克风阵列实现波束成形等高级功能。INMP441展现了数字音频采集的先进技术,为创客和智能硬件开发者提供了优秀的音频解决方案。

深耕CV 1537

XGBoost原生接口和Sklearn接口参数详解

XGBoost原生接口和Sklearn接口参数详解

算法工程师 2656

基于python的OpenCV学习——色彩空间

OpenCV中有数百种关于在不同色彩空间之间的转换的方法。当前,计算机视觉中有三种常用的色彩空间:灰度、BGR以及HSV(Hue,Saturation,Value)。灰度色彩空间是通过去除彩色信息来将其转换成灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测。BGR,即蓝-绿-红色彩空间,每一个像素点都由一个...

weixin_38679101的博客 313

ardupilot BMI088加速度陀螺仪学习

本节主要记录ardupilot 中BMI088传感器的学习过程,欢迎批评指正。BMI088是一款高性能6轴惯性传感器,由16位数字三轴±24g加速度计和16位数字三轴±2000°/ s陀螺仪组成。 BMI088允许高精度测量方向和沿三个正交轴的运动检测。BMI088具有高振动鲁棒性和3 x 4.5 x0.95mm³的小尺寸,是用于无人机和机器人应用等恶劣环境的高性能IMU中的独特产品。 BMI088专门设计用于有效抑制由于PCB上的共振或整个系统的结构而可能发生的振动。 除了高振动稳定性外,BMI088的出

陌城烟雨 2056

【openCV学习】7.色彩空间及色彩空间转化

Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。其中img是需要进行色彩空间转换的图片,cv2.COLOR_BGR2RGBA是一种色彩空间转换,代表从BGR色彩空间转换到RGB色彩空间。YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。他们统一都是由cv2.COLOR_开头,后面是“原色彩空间2变成的色彩空间”,其中2有to的意思。

m0_66606474的博客 621

Apache Flink连载(一):Apache Flink是什么?

Apache Flink 是一个框架和分布式处理引擎,用于在。

qq_32020645的博客 1217

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

(9)OpenCV 4 学习之色彩空间与色彩空间转换

文章目录前言知识点一、函数解析1、色彩空间转换(cvtColor)2、颜色分割(inRange)二、代码示例三、结果展示四、官方教程五、进一步学习(换背景)1、代码分析2、结果展示 前言 最近心血来潮,想具体的去学习一下图像处理,所以报了知识星球的一个OpenCV研习社,将自己每天的学习,分享一下。写个 blog 加深一下知识。 知识点 知识点: 色彩空间与色彩空间转换 RGB色彩空间 HS...

To Be Continue 743

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

opencv学习之色彩提取与色彩空间

上篇文章我们说了有关色彩的问题,RGB只是一种色彩空间,除了它之外我们还有很多色彩空间,这篇重点说一下色彩空间的转换以及在hsv色彩空间中对于颜色的提取。我们先来看代码: import cv2 as cv import numpy as np #建议先跳过这个函数去看下面的色彩空间转换函数,看完了再回过头看这个函数 def extrace_object_demo():#这个函数用来处理视频 capture=cv.VideoCapture("1269942405.mp4")#首先我们读入了一个视频

zephyr的博客 767

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python+opencv学习记录3:色彩空间

文章目录1、色彩空间的介绍1.1、什么是色彩空间1.2、常见的色彩空间1.2.1、RGB1.2.2、HSV1.2.3、HSI1.2.4、YCrCb1.2.5、YUV1.3、相应的API2、色彩空间的应用2.1、颜色的提取完整代码 1、色彩空间的介绍 1.1、什么是色彩空间 所谓色彩空间,又称“色域”,即一定的色彩范围,这是一种色彩模型。sRGB、AdobeRGB、ProPhotoRGB、CMYK等...

*X||D*的博客 855

OpenCV学习笔记二(色彩空间:RGB、HSV、Lab、mask)

数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等,H由绕V轴的旋转角给定,红色对应于角度0°,绿色对应于角度120°,蓝色对应于角度240°,每一种颜色和它的补色相差180°;明度(V),颜色明亮的程度,明度值与发光体的光亮度有关。

hu443556637的博客 1268

OpenCV学习——BGR->RGBA色彩空间转换

本文已搬家至【OpenCV学习】BGR->RGBA色彩空间转换

gnuhpc的专栏 5855

OPENCV入门学习——图像色彩空间转换

创建头文件的主要目的是将程序中的声明和定义分离开来,以便在多个源文件中共享代码。头文件通常包含类的声明、函数原型、常量定义等,而源文件则包含实际的实现细节。使用头文件的主要好处包括:(主要就为了模块化让代码更有条理)OpenCV 提供了许多色彩空间转换的函数,你可以使用这些函数在不同的色彩空间之间进行转换。然后开始写QuickDemo函数的具体内容,其输入参数为image,类型为Mat&,后续调用为QuickDemo(变量名)。这种分离的方法有助于提高代码的可维护性和可扩展性。最后运行main.cpp。

weixin_46509880的博客 174

【OpenCV学习笔记 - 02】色彩空间

对于各种色彩空间的变化,opencv 都给我我们相应的接口,直接调用即可,下面我们来看一下: def color_space_demo(image): # trans to gray gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) cv2.namedWindow('gray_space', cv2.WIN...

Pierce_KK的博客 499

Opencv4.0学习记录(Day2 图像色彩空间转)

第二节课 main.c主函数 #include <opencv2/opencv.hpp>//opencv的头文件 #include<iostream> #include<quickopencv.h> using namespace cv; using namespace std; int main(int argc,char** argv) { Mat img = imread("E:/images/hist_01.jpg");//imrea...

帆帆的博客 162

opencv学习笔记 3 :色彩空间

课程视频链接 基于Python3的Opencv图像处理教程:https://b23.tv/Zye4BV 1. 课程任务 色彩空间转换API 学会使用inRange( ) 通道分离与合并 2. 知识点 2.1 颜色空间 常用的颜色空间,参考该文章:常用的颜色空间 色彩空间的相互转换:最常见的是HSV与RGB,YUV与RGB的相互转换 常见色彩空间有: RGB:最常用 HSV:对指定色彩铭感,用于查找表达特定颜色 HIS: YCrCb:在人体肤色识别运用较多 YUV:Android开发中运用较多 2.2

m0_46475409的博客 271

python实现opencv学习六:色彩空间转换

一:调用转换函数实现图像色彩空间转换 代码如下: # -*- coding=GBK -*- import cv2 as cv #色彩空间的转换 def color_space_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)#RGB转换为gray cv.imshow("gray", gray) h...

zmjames2000 Just record 544
上一篇: 【OpenCV学习】初识OpenCV其二
下一篇: 【OpenCV学习】Mat数据结构与图像通道的分割与融合
user_from_future
博客等级 码龄5年 4067粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值