rgb 订阅
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。 展开全文
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。
信息
外文名
RGB color mode
图像颜色
红、绿、蓝三色
每像素颜色
16777216(256 * 256 * 256)种
原    理
颜色发光
中文名
RGB色彩模式
强度值
0~255
调色板RGB
RGB1、RGB4、RGB8
RGBRGB色彩模式
显示器大都是采用了RGB颜色标准, 在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的,电脑一般都能显示32位颜色,有一千万种以上的颜色。 [1]  电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。因此这红色绿色蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue)。在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。如同2000年到2010年共是11年一样。按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。在led领域利用三合一点阵全彩技术, 即在一个发光单元里由RGB三色晶片组成全彩像素。随着这一技术的不断成熟,led显示技术会给人们带来更加丰富真实的色彩感受。RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于三者亮度之总和,越混合亮度越高,即加法混合。 红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调。RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于照明光、电视和计算机显示器。例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视光谱都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生黄、青和紫。对一种颜色进行编码的方法统称为“颜色空间”或“色域”。用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量。RGB(红、绿、蓝)只是众多颜色空间的一种。采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。但是,它缺乏与早期黑白显示系统的良好兼容性。因此,许多电子电器厂商普遍采用的做法是,将RGB转换成YUV颜色空间,以维持兼容,再根据需要换回RGB格式,以便在电脑显示器上显示彩色图形。网页格式由于网页(WEB)是基于计算机浏览器开发的媒体,所以颜色以光学颜色RGB(红、绿、蓝)为主。网页颜色是以16进制代码表示,一般格式为#DEFABC (字母范围从A-F,数字从0-9 );如黑色,在网页代码中便是:#000000(在css编写中可简写为#000)。当颜色代码为#AABB11时,可以简写为#AB1表示,如#135与#113355表示同样的颜色。RGB1、RGB4、RGB8都是调色板类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB1(2色位图)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色)…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。RGB555RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:高字节 低字节X R R R R R G G G G G B B B B B (X表示不用,可以忽略)可以组合使用屏蔽字和移位操作来得到RGB各分量的值:RGB565RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:高字节 低字节R R R R R G G G G G G B B B B B可以组合使用屏蔽字和移位操作来得到RGB各分量的值:该代码可以解决24位与16位相互转换的问题RGB24RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:RGB32RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB24。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:技术特点● 采集计算机VGA输出屏幕、各种非标准相机的输出采集设备、标准或非标的RGB分量信号● 采集的信号种类按照接口可为复合非标准模拟信号,绿路带同步的/行场分离的RGB分量信号● 高分辨率高帧率:1280×1024/40帧;1024×768/60帧;800×600/120帧;● 最高点频可达170M● 支持硬件任意开窗,二级缩放,硬件翻转● 有类似内存映射的功能,多个应用程序/进程可以共享其采集的图像数据;● 信号接入丢失感知,无信号不蓝屏、死机● 硬件控制帧率流量,可在实际使用中和其它采集卡配合,更有效提高PCI带宽的利用● 支持RGB32、RGB24、YUV422、RGB8等采集格式● 全自动行场频检测:具有全自动行场频自适应能力和信号自检测能力,信源端信号的变化不需要用户调节,完全适合无人值守应用●编程完全使用微软提供DirectShow /VFW接口,也可提供基于VC、VB、Delphi等的二次开发包演示程序和源代码,●可使用微软的AmCap,VidCap,Windows Media Encode,Window Movie Maker、第三方提供的LabView等应用软件信号介绍VGA采集卡/RGB信号采集卡可采集VGA信号、标准和非标准RGB分量等信号源,适用于高精度、高分辨率的图像采集、高清VGA视频图像的存储、编码传输等要求。开发工具● 操作系统支持:Windows 2000、XP、Vista、7 linux unix等主流操作系统.● SDK支持:VC、VB、Delphi,提供演示程序及演示程序源代码● 驱动支持:DirectX、OpenCV、LabView、RGB色彩空间根据实际使用设备系统能力的不同,有各种不同的实现方法。截至2006年,最常用的是24-位实现方法,也就是红绿蓝每个通道有8位或者256色级。基于这样的24-位RGB 模型的色彩空间可以表现 256×256×256 ≈ 1670万色。一些实现方法采用每原色16位,能在相同范围内实现更高更精确的色彩密度。这在宽域色彩空间中尤其重要,因为大部分通常使用的颜色排列的相对更紧密。印刷技术的当中的RGB色彩空间主要是指加色法当中的三度色彩空间,通过使用不同强度的三原色,红、绿、蓝色的光线来组合成不同的色彩,就好像说,如果平时我们利用扫描仪从印刷品上扫描图像,原理就是扫描仪阅读了图像上面的红、绿、蓝三色的光亮度,然后把这些量度转换成数据,当显示器收到这些数据的时候就可以按照程序设定转换成制定的红、绿、蓝三原色,其实他们当中是有很多不同颜色的小色块的,由于这些色块的像素非常非常的小而且密密麻麻的,所以我们眼睛没法分辨出来。 [2]  以上颜色为常用的基本颜色。颜色选择器是指利用程序实现R、G、B三色的分配,来实现颜色的选择,利用颜色选择器可以选择出所有的颜色,总共有256*256*256种,同时可以实时的预览颜色,这就使得颜色的选择多种多样,并且非常方便。
收起全文
精华内容
参与话题
问答
  • RGB

    千次阅读 2014-07-24 22:23:00
    RGB RGB ���¼���ԭʼ��ҳ��ӡ RGB_百度百科 1基本简介编辑 简介 RGB 色彩 模式使用 RGB模型 为图像中每一个 像素 的RGB分量分配一个0~255范围内的强度值。RGB ...

    RGB

    RGB

    RGB_百度百科

    1基本简介编辑

    简介

    RGB

    色彩

    模式使用

    RGB模型

    为图像中每一个

    像素

    的RGB分量分配一个0~255范围内的强度值。RGB

    图像

    只使用三种颜色,就可以使它们按照不同的比例混合,在

    屏幕

    上呈现16777216(256 * 256 * 256)种颜色。

    应用

    [1] 

    电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。

    因此这红色绿色蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue)。

    在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。如同2000年到2010年共是11年一样。

    按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。

    led

    领域利用三合一点阵全彩技术, 即在一个发光单元里由RGB三色晶片组成全彩

    像素

    。随着这一技术的不断成熟,

    led

    显示技术会给人们带来更加丰富真实的

    色彩

    感受。

    原理

    RGB是从

    颜色

    发光的原理来设计定的,通俗点说它的

    颜色

    混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,

    色彩

    相混,而

    亮度

    却等于两者亮度之总和,越混合亮度越高,即加法混合。

    有色光可被无色光冲淡并变亮。如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。知道它的混合原理后,在

    软件

    中设定颜色就容易理解了。

    红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。

    红、绿、蓝三个

    颜色通道

    每种色各分为255阶

    亮度

    ,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色数值相同时为无

    色彩

    灰度

    色,而三色都为255时为最亮的白色,都为0时为黑色。

    RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于

    照明

    光、

    电视

    计算机显示器

    。例如,

    显示器

    通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视

    光谱

    都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生青、

    洋红

    和黄。

    2RGB格式编辑

    对一种颜色进行编码的方法统称为“

    颜色空间

    ”或“

    色域

    ”。用最简单的话说,世界上任何一种颜色的“

    颜色空间

    ”都可定义成一个固定的数字或

    变量

    。RGB(红、绿、蓝)只是众多

    颜色空间

    的一种。采用这种编码方法,每种颜色都可用三个

    变量

    来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。但是,它缺乏与早期黑白显示系统的良好兼容性。因此,许多电子电器厂商普遍采用的做法是,将RGB转换成

    YUV

    颜色空间,以维持兼容,再根据需要换回RGB格式,以便在电脑

    显示器

    上显示彩色图形。

    网页格式

    由于网页(

    WEB

    )是基于

    计算机浏览器

    开发的媒体,所以颜色以光学颜色RGB(红、绿、蓝)为主。网页颜色是以16进制代码表示,一般格式为#DEFABC (字母范围从A-F,数字从0-9 );如黑色,在

    网页代码

    中便是:#000000(在

    css

    编写中可简写为#000)。当颜色代码为#AABB11时,可以简写为#AB1表示,如#135与#113355表示同样的颜色。

    格式简介

    RGB1、RGB4、RGB8都是

    调色板

    类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER

    数据结构

    后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前

    像素

    颜色值在

    调色板

    中的索引。以RGB1(2色

    位图

    )为例,比如它的

    调色板

    中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色)…(每个

    像素

    用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。

    RGB555

    RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:

    高字节 低字节

    X R R R R R G G G G G B B B B B (X表示不用,可以忽略)

    可以组合使用屏蔽字和移位操作来得到RGB各分量的值:

    #define RGB555_MASK_RED 0x7C00

    #define RGB555_MASK_GREEN 0x03E0

    #define RGB555_MASK_BLUE 0x001F

    R = (wPixel & RGB555_MASK_RED) >> 10; // 取值范围0-31

    G = (wPixel & RGB555_MASK_GREEN) >> 5; // 取值范围0-31

    B = wPixel & RGB555_MASK_BLUE; // 取值范围0-31

    RGB565

    RGB565使用16位表示一个

    像素

    ,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个

    像素

    。当读出一个

    像素

    后,这个字的各个位意义如下:

    高字节 低字节

    R R R R R G G G G G G B B B B B

    可以组合使用屏蔽字和移位操作来得到RGB各分量的值:

    #define RGB565_MASK_RED 0xF800

    #define RGB565_MASK_GREEN 0x07E0

    #define RGB565_MASK_BLUE 0x001F

    R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31

    G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63

    B = wPixel & RGB565_MASK_BLUE; // 取值范围0-31

    #define RGB(r,g,b) (unsigned int)( (r|0x08 << 11) | (g|0x08 << 6) | b|0x08 )

    #define RGB(r,g,b) (unsigned int)( (r|0x08 << 10) | (g|0x08 << 5) | b|0x08 )

    该代码可以解决24位与16位相互转换的问题

    RGB24(RGB888)

    RGB24使用24位来表示一个

    像素

    ,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE

    数据结构

    来操作一个

    像素

    ,它的定义为:

    typedef struct tagRGBTRIPLE {

    BYTE rgbtBlue; // 蓝色分量

    BYTE rgbtGreen; // 绿色分量

    BYTE rgbtRed; // 红色分量

    } RGBTRIPLE;

    RGB32(RGB8888)

    RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha

    通道

    或者不用。(ARGB32就是带Alpha

    通道

    的RGB24。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。通常可以使用RGBQUAD

    数据结构

    来操作一个像素,它的定义为:

    typedef struct tagRGBQUAD {

    BYTE rgbBlue; // 蓝色分量

    BYTE rgbGreen; // 绿色分量

    BYTE rgbRed; // 红色分量

    BYTE rgbReserved; // 保留字节(用作Alpha

    通道

    或忽略)

    } RGBQUAD。

    3信号获取编辑

    技术特点

    ● 采集

    计算机

    VGA输出屏幕、各种非标准相机的输出采集设备、标准或非标的RGB

    分量信号

    ● 采集的信号种类按照接口可为复合非标准

    模拟信号

    ,绿路带同步的/行场分离的RGB分量信号

    ● 高分辨率高帧率:1280×1024/40帧;1024×768/60帧;800×600/120帧;

    ● 最高点频可达170M

    ● 支持硬件任意开窗,二级缩放,硬件翻转

    ● 有类似内存映射的功能,多个应用程序/进程可以共享其采集的图像数据;

    ● 硬件控制帧率流量,可在实际使用中和其它

    采集卡

    配合,更有效提高PCI

    带宽

    的利用

    ● 支持RGB32、RGB24、YUV422、RGB8等采集格式

    ● 全自动行

    场频

    检测:具有全自动行场频自适应能力和信号自检测能力,信源端信号的变化不需要用户调节,完全适合无人值守应用

    编程

    完全使用

    微软

    提供DirectShow /VFW接口,也可提供基于VC、VB、Delphi等的二次开发包演示程序和源代码,

    ●可使用微软的AmCap,VidCap,Windows Media Encode,Window Movie Maker、第三方提供的LabView等应用

    软件

    信号简介

    VGA采集卡

    /RGB信号采集卡可采集VGA信号、标准和非标准RGB分量等信号源,适用于高精度、高

    分辨率

    的图像采集、高清VGA视频图像的存储、编码传输等要求。

    开发工具

    ● 操作系统支持:Windows 2000、XP、Vista、7 linux unix等主流操作系统.

    ● SDK支持:VC、VB、Delphi,提供演示程序及演示程序源代码!

    ● 驱动支持:DirectX、OpenCV、LabView、

    4色彩空间编辑

    RGB

    色彩

    空间根据实际使用设备系统能力的不同,有各种不同的实现方法。截至2006年,最常用的是24-位实现方法,也就是红绿蓝每个

    通道

    有8位或者256色级。基于这样的24-位RGB 模型的

    色彩

    空间可以表现 256×256×256 ≈ 1670万色。一些实现方法采用每原色16位,能在相同范围内实现更高更精确的

    色彩

    密度。这在宽域

    色彩

    空间中尤其重要,因为大部分通常使用的颜色排列的相对更紧密。

    印刷技术的当中的RGB

    色彩

    空间主要是指加色法当中的三度色彩空间,通过使用不同强度的三原色,红、绿、蓝色的光线来组合成不同的色彩,就好像说,如果平时我们利用扫描仪从印刷品上扫描图像,原理就是扫描仪阅读了图像上面的红、绿、蓝三色的光

    亮度

    ,然后把这些量度转换成数据,当

    显示器

    收到这些数据的时候就可以按照程序设定转换成制定的红、绿、蓝三原色,其实他们当中是有很多不同颜色的小色块的,由于这些色块的

    像素

    非常非常的小而且密密麻麻的,所以我们眼睛没法分辨出来。

    5RGB宏编辑

    #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))

    这是个带三个参数的宏,

      首先将r,g,b强制转换成BYTE型,之后g左移8位,b左移16位,并把结果分别强制转换成DWORD型,最后将r,左移8位后的g,还有左移16位后的b三者做按位或,所得的结果强制转换成COLORREF类型。

    [2] 

    TheRGBmacro selects a red, green, blue (RGB) color based on the arguments supplied and the color capabilities of the output device.

    COLORREF RGB( BYTE byRed, BYTE byGreen, BYTE byBlue );

    Return value

    The return value is the resultant RGB color as a

    COLORREF

    value.

    [3] 

    Parameters

    byRed

    The intensity of the red color.

    byGreen

    The intensity of the green color.

    byBlue

    The intensity of the blue color.

    6颜色函数编辑

    RGB

    函数

    执行成功时返回由指定分量确定的颜色,用长整数表示。用于表示一个RGB(红绿蓝)颜色值.

    语法

    RGB (RedAs Integer ,GreenAs Integer ,BlueAs Integer )

    部分

    描述

    red

    必要参数;Integer类型。数值范围从 0 到 255,表示颜色的红色成份。

    green

    必要参数;Integer类型。数值范围从 0 到 255,表示颜色的绿色成份。

    blue

    必要参数;Integer类型。数值范围从 0 到 255,表示颜色的蓝色成份。

    注意: 如果其中有一个参数的值超过 255 ,不会显示任何错误,但这个参数会被当做 255。

    函数说明

    可以接受颜色说明的应用程序的

    方法

    属性

    期望这个说明是一个代表 RGB 颜色值的数值。一个 RGB 颜色值指定红、绿、蓝三原色的相对亮度,生成一个用于显示的特定颜色。

    用法RGB()

    函数

    使用下述公式计算表示颜色的长整数:65536 *Blue + 256 * Green+Red其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各分量中,数值越小,

    亮度

    越低,数值越大,亮度越高。

    7常见颜色编辑

    颜色名称 红色值 Red 绿色值 Green 蓝色值 Blue

    黑色

    0

    0

    0

    蓝色

    0

    0

    255

    绿色

    0

    255

    0

    青色

    0

    255

    255

    红色

    255

    0

    0

    洋红色

    255

    0

    255

    黄色

    255

    255

    0

    白色

    255

    255

    255

    8颜色选择器编辑

    颜色选择器是指利用程序实现R、G、B三色的分配,来实现颜色的选择,利用颜色选择器可以选择出所有的颜色,总共有256*256*256种,同时可以实时的预览颜色,这就使得颜色的选择多种多样,并且非常方便。

    posted @ 2014-07-24 22:23 心灵捕手 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • Matlab提取图像的RGB分量以及RGB的阈值分割

    万次阅读 多人点赞 2019-05-09 13:50:06
    本教程讲解如何将一副RGB图像,提取出图像的R,G,B分量的图像。如何将图像进行颜色的阈值分割。 原图像 ​ Matlab提取RGB颜色分量: 我们知道,一张RGB图像,对应着一个M xN x3 的三维图像。这里的3代表着R,G,B...

    本教程讲解如何将一副RGB图像,提取出图像的R,G,B分量的图像。如何将图像进行颜色的阈值分割。

    原图像

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    Matlab提取RGB颜色分量:

    我们知道,一张RGB图像,对应着一个M x N x 3 的三维图像。这里的3代表着R,G,B三个分量。其数据类型为uint8类型。数值大小在[0,255]之间。

    例如:我们在Matlab中读入本次测试的图像。I=imread(‘test.bmp’);

    在工作区中可以看到其数值。

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    PR=I(:,:,1);%提取红色分量 PG=I(:,:,2);%提取绿色分量 PB=I(:,:,3);%提取蓝色分量

    运行代码:

    
    
    clc; 
    close all; 
    clear all; 
    I=imread('test.bmp');%要求你.m文件下有test.bmp这个图像文件 
    PR=I(:,:,1);%提取红色分量 
    PG=I(:,:,2);%提取绿色分量 
    PB=I(:,:,3);%提取蓝色分量 
    
    figure; 
    subplot(2,2,1);imshow(I);title('原图像'); 
    subplot(2,2,2);imshow(PR);title('提取红分量后'); 
    subplot(2,2,3);imshow(PG);title('提取绿色分量后'); 
    subplot(2,2,4);imshow(PB);title('提取蓝色分量后');
    
    
    

    运行的效果图:

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    RGB阈值分割

    上面这种RGB通道分量的提取的效果,并不是我想要的结果。我想要的结果是下图这样的。

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    因此,我们使用图像的阈值分割。

    阈值分割的基本思想是确定一个阈值,然后把每个像素点的灰度值和阈 值相比较,根据比较的结果把该像素划分为两类——前景或背景。

    源自参考文档:
    图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。

    基本原理是:通过设定不同的特征阈值,把图像象素点分为若干类。

    常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征。

    实现代码:

    
    
    clc; 
    close all; 
    clear all; 
    I=imread('test.bmp'); 
    [m,n,d]=size(I); 
    
    level=15;%设置阈值 
    level2=70;%设置阈值 
    
    for i=1:m 
        for j=1:n 
            if((I(i,j,1)-I(i,j,2)>level2)&&(I(i,j,1)-I(i,j,3)>level2)) 
                r(i,j,1)=I(i,j,1); 
                r(i,j,2)=I(i,j,2); 
                r(i,j,3)=I(i,j,3); 
           else  
                r(i,j,1)=255; 
                r(i,j,2)=255; 
                r(i,j,3)=255; 
            end 
        end 
    end 
    
    figure; 
    subplot(2,2,1);imshow(I);title('原图像'); 
    subplot(2,2,2);imshow(r);title('提取红分量后');%显示提取红分量后的图 
    
    
    %提取绿分量,不满足阈值的变为白色 
    for i=1:m 
        for j=1:n 
            if((I(i,j,2)-I(i,j,1)>level)&&(I(i,j,2)-I(i,j,3)>level)) 
                g(i,j,1)=I(i,j,1); 
                g(i,j,2)=I(i,j,2); 
                g(i,j,3)=I(i,j,3); 
            else 
                g(i,j,1)=255; 
                g(i,j,2)=255; 
                g(i,j,3)=255; 
            end 
        end 
    end 
    
    subplot(2,2,3);imshow(g);title('提取绿分量后'); 
    
    
    %提取蓝色分量 
    for i=1:m 
        for j=1:n 
            if((I(i,j,3)-I(i,j,1)>level)&&(I(i,j,3)-I(i,j,2)>level)) 
                        b(i,j,1)=I(i,j,1); 
                        b(i,j,2)=I(i,j,2); 
                        b(i,j,3)=I(i,j,3); 
            else 
                b(i,j,1)=255; 
                b(i,j,2)=255; 
                b(i,j,3)=255; 
            end 
        end 
    end 
    
    subplot(2,2,4);imshow(b);title('提取蓝色分量后');
    
    
    

    运行结果图:

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    图像中去除某一个区域

    比如,我想去除红色分量的矩形。但是这两个红色分量数值非常的相近,不好通过阈值来分割。那我们要如何将红色矩形去除呢?(本篇文章使用最简单的去除方法,下一篇文章则会讲解如何使用形状识别来提取某个图形。)

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    解决方法:

    这里解决方法很简单,先将原图像,那一块区域赋值成白色,再通过阈值分割就可以将其区分开。

    代码实现:

    
    
    copy_image = I; 
    r = 50:100;%要赋值的行坐标 
    c = 20:300;%要赋值的列坐标 
    copy_image(r,c,1:3) = 255; 
    
    figure; 
    imshow(copy_image);
    
    
    
    

    运行结果:

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    在将其进行图像分割,即可将原来的矩形去除:

    参考文档:

    RGB图像中特定颜色的提取

    展开全文
  • 彩色RGB图像转为灰度图像

    万次阅读 2016-05-04 13:09:17
    将彩色RGB图像转为灰度图像,其中像素值的转换为 灰度值=0.2989 * R + 0.5870 * G + 0.1140 * B 原彩色RGB图像是三通道的,转换成单通道的灰度图像 自己写了一个Python程序,实现该转换任务: # -*- ...

    将彩色RGB图像转为灰度图像,其中像素值的转换为

    灰度值=0.2989 * R + 0.5870 * G + 0.1140 * B


    原彩色RGB图像是三通道的,转换成单通道的灰度图像

    自己写了一个Python程序,实现该转换任务:

    # -*- coding: utf-8 -*-
    # 将RGB彩色图像转为灰度图像
    
    import cv2
    import numpy
    
    lena = cv2.imread('F:\CVImages\lena.jpg')
    img = lena
    height = img.shape[0]
    width = img.shape[1]
    channels = img.shape[2]
    
    value = [0] * 3
    gray_img = numpy.zeros([height, width], numpy.uint8)
    
    for row in range(height):
    	for column in range(width):
    		for chan in range(channels):
    			value[chan] = img[row, column, chan]
    		R = value[2]
    		G = value[1]
    		B = value[0]
    		# new_value = 0.2989 * R + 0.5870 * G + 0.1140 * B
    		new_value = 0.2989 * R + 0.5870 * G + 0.1140 * B # 转为灰度像素
    		gray_img[row, column] = new_value
    
    cv2.imshow('original image', img)
    cv2.waitKey(0)
    cv2.imshow('gray image', gray_img)
    cv2.waitKey(0)
    cv2.imwrite('gray_lena.jpg', gray_img)


    展开全文
  • 小白笔记——python中turtle的pencolor的RGB整数模式与小数模式切换 turtle的 RGB 色彩模式默认采用小数值 但个人觉得小数方式不方便,一边颜色表都是整数形式 可切换为整数值 turtle.colormode(255)#先使用这行代码...

    小白笔记——python中turtle的pencolor的RGB整数模式与小数模式切换

    turtle的 RGB 色彩模式默认采用小数值
    但个人觉得小数方式不方便,一边颜色表都是整数形式
    可切换为整数值
    turtle.colormode(255)#先使用这行代码将默认状态下turtle.colormode(1.0)切换turtle.colormode(255)
    turtle.color((211,22,11))#然后可以对应RGB红绿蓝255以内整数随意定义颜色

    import turtle
    turtle.setup(1400, 1400, 100, 100)#设置窗口大小为14001400,位置为100,100
    turtle.colormode(255)
    turtle.color((211,22,11))
    turtle.fd(100)
    turtle.seth(-40)
    for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
    turtle.circle(40,80/2)
    turtle.fd(40)
    turtle.circle(16,180)
    turtle.fd(40
    2/3)

    图片: 图

    [1]:感谢博客的解疑 https://www.cnblogs.com/nowgood/p/turtle.html
    请看小猪佩奇的代码中提到了


    最后愿意请小编喝茶的,在此有礼了

    在这里插入图片描述

    展开全文
  • 常见的RGB格式有RGB1、RGB4、RGB8、RGB565、RGB555、RGB24、RGB32、ARGB32等
  • 概述本文章会详细的介绍RGB颜色空间与RGB三色中色调、饱和度、亮度之间的关系,最后会介绍HSV颜色空间!一.RGB颜色空间1.起源RGB三原色起源于上世纪初1809年ThomasYoung提出视觉的三原色学说,随后Helmholtz在1824...
  • BMP 转 RGB YUV 工具

    热门讨论 2010-07-30 20:17:18
    RGB32 RGB24 RGB16 GRAY RGB4444 RGB5551 YUV422 YUV444COM YUV444SEP YUV420 Y_UV22 Y_UV20 YUV422SEP 等格式的二进制文件 是制作UI和测试LCDC的好工具 Y_UV20 为simi planar 即YUV420格式,Y单独放,UV packed...
  • RGB565 与RGB888的区别

    万次阅读 2013-01-29 10:33:52
    正常的RGB24是由24位即3个字节来描述一个像素,R、G、B各8位。而实际使用中为了减少图像数据的尺寸,如视频领域,对R、G、B所使用的位数进行的缩减,如你所说的RGB565和RGB555。 RGB565 就是R-5bit,G-6bit,B-5bit...
  • 图像处理算法——RGB颜色空间

    万次阅读 2019-03-29 14:18:20
    RGB颜色空间 RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉发出...
  • 常用颜色RGB

    万次阅读 多人点赞 2018-09-14 15:46:42
    这是我见过的颜色比较清新的颜值表了,果断收藏 常见RGB颜色表: RGBRGBRGB值黑色000#000000黄色2552550#FFFF00浅灰蓝色176224230#B0E0E6象牙黑413633#292421香...
  • RGB与Lab颜色空间互相转换

    万次阅读 多人点赞 2017-08-17 23:25:17
    RGB与Lab颜色空间互相转换 1.Lab颜色空间 同RGB颜色空间相比(见博客《光与色的故事—颜色模型浅析》),Lab是一种不常用的色彩空间。它是在1931年国际照明委员会(CIE)制定的颜色度量国际标准的基础上建立起来...
  • Kinect深度图与RGB摄像头的标定与配准

    万次阅读 多人点赞 2013-07-07 23:24:48
    但是,Kinect自身的RGB摄像头分辨率有限,清晰度也不及一些专业摄像头,因此有了用第三方摄像头代替Kinect摄像头的想法。现在的问题是,如何将Kinect的深度图与第三方摄像头的RGB图像对准? 我们知道,当使用Kinect...
  • SLAM RGB-D mapping

    万次阅读 2019-12-14 12:41:35
    RGB-D mapping 3D indoor scene modeling from RGB-D data: a survey K. Chen, YK. Lai and SM. Hu. Computational Visual Media 2015. State of the Art on 3D Reconstruction with RGB-D Cameras K. Hildebrandt a...
  • RAW RGB, Bayer RGBRGB

    千次阅读 2016-06-04 17:05:17
    RAW RGBRGB  摄像头的数据输出格式一般分为CCIR601、CCIR656、RAW RGB等格式,此处说的RGB格式应该就是CCIR601或CCIR656格式。而RAW RGB格式与一般的RGB格式是有区别的。  我们知道,Sensor的感光原理是通过一...
  • 用Matlab对RGB图像的三颜色通道R,G,B个自做一些运算后得到R1,G1,B1,然后运行I1=cat(3, R1,G1,B1); I2=uint8(I1)得到的图像颜色很正常,而我先将RGB转换到HIS,对H,S,I三通道各自进行一些运算后,得到新的H1,S1...
  • matlab中 rgb2gray() 函数 具体实现

    万次阅读 2018-06-03 20:13:46
    简介 rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能,调用这个功能的格式是I = rgb2gray(RGB),意思是将真彩色...
  • For a image is RGB565 format, sometimes we want convert it to RGB888, we can simply extract the RGB. The following is some piece of my co
  • RGB565 to RGB24, RGB555 & RGB2

    千次阅读 2012-04-04 23:14:16
    #define RGB565_MASK_RED 0xF800 #define RGB565_MASK_GREEN 0x07E0 #define RGB565_MASK_BLUE 0x001F void rgb565_2_rgb24(BYTE *rgb24, WORD rgb565
  • RAW RGBRGB

    千次阅读 2017-08-22 14:30:31
    网上关于RGB Raw data的介绍的比较混乱,现整理了一下给大家发出来, 先看看网上的一种说法“摄像头的数据输出格式一般分为CCIR601、CCIR656、RAW RGB等格式,此处说的RGB格式应该就是CCIR601或CCIR656格式。而...
  • RGB Bayer转为RGB

    千次阅读 2018-03-17 16:40:13
    RGB Bayer转为RGBRaw RGB 每个像素只有一种颜色(R、G、B中的一种); RGB 每个像素都有三种颜色,每一个的值在0~255之间; 在手机摄像头的测试过程中,由sensor输出的数据就是Raw data(Raw RGB),经过彩色插值...
  • RGB和Raw RGB

    千次阅读 2010-11-09 22:34:00
     摄像头的数据输出格式一般分为CCIR601、CCIR656、RAW RGB等格式,此处说的RGB格式应该就是CCIR601或CCIR656格式。而RAW RGB格式与一般的RGB格式是有区别的。 我们知道,Sensor的感光原理是通过一个一个...
  • 如何使用 Color.rgb ?

    2013-01-30 03:13:30
    我觉得是使用`Color.rgb`出错,但是怎么修改呢? chkCmd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String ...
  • RGB565,RGB555, RGB888,RGB32转换

    千次阅读 2013-12-06 08:28:52
    关于RGB565,RGB555, RGB888,RGB32的转换,在我的前一篇博文中我已经介绍过了关于RGB565->RGB888的步骤和思想。  今天上午又研究了一个上午,就谢了下来,希望能给需要帮助的哥们一点小小指导,当然了..也期待着...
  • 本人想将RGB模式转换为Lab模式原图: ![图片说明](https://img-ask.csdn.net/upload/201704/18/1492502916_581376.jpg) 方法1.调用rgb2lab函数 i=imread('1.jpg'); i1=rgb2lab(i); i1=uint8(i1); ismhow(i1); 图片...
  • 我在看YUV420SP转RGB的时候有如下一段java代码 if (r ) r = 0; else if (r > 262143) r = 262143; if (g ) g = 0; else if (g > 262143) g = 262143; if (b ) b = 0; else if (b > 262143) b = 262143; ...
  • RGB的数值已经获取到了,但是在转换hsl的时候总是undefined。具体应该在哪里调用并输出(感觉可能是这里出了问题)。代码是百度的加上了一些自己的修改,会有些乱。求助! ``` var reader = new FileReader(); ...
  • 护眼绿RGB

    万次阅读 2019-06-25 11:09:42
    网上流行护眼色的RGB值分别为: R: 204 G: 232 B: 207 以matlab R2017b ,设置背景色为护眼绿 为例: 预设——>颜色——> 取消勾选 使用系统颜色——> 背景——>RGB——> RGB依次输入 204, ...
  • opencv RGB2lab的问题

    2016-04-18 10:44:00
    为什么我用别人网上的RGB2Lab得到的图是这样的 (其中两个通道) ![图片说明](https://img-ask.csdn.net/upload/201604/18/1460976138_532962.jpg) 用库函数 cvtColor(mDstImg, mDstImg, CV_BGR2Lab); split...

空空如也

1 2 3 4 5 ... 20
收藏数 50,352
精华内容 20,140
关键字:

rgb