OpenCV入门(2):图像的基本概念

在正式学习 OpenCV 前,需要先了解下图像的基本概率。
一、像素
1.1 像素(Pixel)
定义:像素是图像的最小单位,是“图像元素”的缩写。你可以把像素想象成拼图中的一个最小块,无数个像素组合在一起就形成了完整的图像。
作用:像素决定了图像的精细程度。图像的分辨率(如 1920×1080),意思就是长度为 1920 个像素点,宽带为 1080 个像素点。
特点:
像素本身没有固定的物理尺寸,其实际大小取决于显示设备的分辨率(PPI)和屏幕尺寸。
在屏幕上,像素通常是正方形或长方形的点。
1.2 像素值(Pixel Value)
定义:像素值是指每个像素所包含的颜色或亮度信息。它用数字表示,具体形式取决于图像的色彩模式。
常见色彩模式:
灰度图像:
每个像素值表示亮度,通常用 0 到 255 的整数表示。
例如:0 表示黑色,255 表示白色,中间值表示不同灰度。
RGB图像:
每个像素值由红(R)、绿(G)、蓝(B)三个通道的值组成,每个通道的范围通常是0到255。
例如:(255, 0, 0) 表示纯红色,(0, 255, 0) 表示纯绿色,(0, 0, 255) 表示纯蓝色。
RGBA图像:
在RGB的基础上增加了一个透明度通道(Alpha),用于表示图像的透明效果。
例如:(255, 0, 0, 128) 表示半透明的红色。
1.3 像素和像素值的关系
像素是图像的基本单位,而像素值是描述这个单位的具体信息。举个例子:
一张 1920×1080 的图片由 2073600 个像素组成。
每个像素都有一个像素值,比如 (255, 0, 0) 表示这个像素是红色。
二、图片尺寸和分辨率
图片尺寸和分辨率是两个相关但不同的概念。
2.1 图片尺寸(Image Dimensions)
图片尺寸通常指:
像素尺寸:图像的宽度和高度各有多少像素(如1920×1080像素)
物理尺寸:图像打印或显示时的实际大小(如8×10英寸)
2.2 分辨率(Resolution)
分辨率通常指:
像素密度:每英寸包含的像素数量(PPI, Pixels Per Inch)
打印分辨率:常见打印分辨率 300PPI 表示每英寸有 300 个像素
2.3 区别
特性
图片尺寸 (Dimensions)
分辨率 (Resolution)
定义
图像的宽度和高度(像素数或物理尺寸)
单位长度内的像素数量(通常指像素密度)
单位
像素(px)、英寸(in)、厘米(cm)等
像素/英寸(PPI)、像素/厘米等
决定因素
图像包含的总像素数量
打印或显示时的清晰度
变化影响
改变尺寸会增减总像素数
改变分辨率只影响打印/显示大小,不改变像素总数
三、色深
3.1 色深(bits per pixel)
色深:图像中每个像素可以表示的颜色数。色深是指图像中每个像素可以表示的颜色数量,它直接影响图像的色彩丰富度和细腻程度。
3.2 色深位数
色深通常用位数(bits per pixel, bpp)来衡量,表示每个像素的颜色信息是由多少位二进制数来表示。色深越高,能表示的颜色种类就越多,图像看起来就越细腻和真实。
1 位色深(1bpp):每个像素只能表示两种颜色(通常是黑和白),适用于简单的图形和文本。
4 位色深(4bpp):每个像素可以表示 16 种颜色(2^4=16),常用于早期的计算机图形和游戏
8 位色深(8bpp):每个像素可以表示 256 种颜色(2^8=256),这是早期网页和操作系统图形的标准,支持简单的调色板,可以实现较丰富的色彩表现
16 位色深(16bpp):可以是 5-6-5 格式(5 位红、6 位绿、5 位蓝),能表示 65536 种颜色(2^16=65536),提高了色彩的平滑过渡,适用于较高质量的图像显示。
24 位色深(24bpp):真彩色,每个像素由 8 位红、8 位绿、8 位蓝组成,总共可以表示约 1670 万种颜色(2^24=16777216),几乎涵盖了人眼能识别的所有颜色,是目前大多数数字图像的标准。
32 位色深(32bpp):在 24 位真彩色基础上增加了一个 8 位的 Alpha 通道,用于表示透明度,适用于需要透明效果的图像。
四、通道
通道(Channel)是数字图像中存储颜色或亮度信息的基本单位。可以将通道理解为图像中不同信息的“层”,每一层负责存储特定类型的数据。
通道通俗来讲就是表示每个点能存放多少个数,例如RGB彩色图像中每个像素点存放三个值,即 3 通道的:
4.1 通道的基本概念
通道是图像中独立的数据层,每个通道存储一种特定的信息。
对于灰度图像,只有一个通道,存储亮度信息。
对于RGB图像,有三个通道,分别存储红色、绿色和蓝色的强度信息。
通道的值通常是一个数值范围(如0到255),表示某种信息的强度。
4.2 通道的直观理解
可以将通道想象成图像的“图层”:
每个通道是一张独立的灰度图像,表示某种颜色的强度。
例如,在RGB图像中:
红色通道是一张灰度图像,表示红色的强度。
绿色通道是一张灰度图像,表示绿色的强度。
蓝色通道是一张灰度图像,表示蓝色的强度。
将这些通道叠加在一起,就形成了最终的彩色图像。
4.3 通道的扩展
除了RGB通道,图像还可能包含其他通道:
Alpha通道:表示图像的透明度(常用于PNG图像)。
多光谱通道:在遥感或医学图像中,可能有多个通道表示不同波段的信号。
深度通道:在3D图像中,存储深度信息。
五、颜色模型
在计算机中,颜色的处理主要通过不同的颜色模型来实现。这些颜色模型通过数学方法描述颜色的特征,以便在显示设备(如显示器、打印机)或软件中准确地表示和处理颜色。常见的颜色分类标准包括 RGB、CMYK、HSV、HSL、LAB、HEX 等。RGB 和 CMYK 是最常见的颜色空间,分别用于显示器和打印机;HSV 和 LAB 则提供了一种更接近人类视觉感知的颜色表示方式;HEX 通过一个六位的十六进制数表示,适合网页设计。
5.1 RGB(Red-Green-Blue)
RGB是计算机最常用的颜色模型,可以表示的颜色总数为 256 × 256 × 256 = 16,777,216 种颜色,这被称为 24 位颜色或真彩色。
原理:基于光的三原色原理,通过红、绿、蓝三种颜色光的混合来产生各种颜色。每种颜色光的强度可以用一个数值表示,范围通常是 0 到 255(8位,即256级灰度)
表示方法:颜色用三个分量表示,例如 (R, G, B)。例如,(255, 0, 0) 表示纯红色,(0, 255, 0) 表示纯绿色,(0, 0, 0) 表示黑色,(255, 255, 255) 表示白色
应用:主要用于电子显示设备,如显示器、电视、手机屏幕等,因为这些设备的像素点由红、绿、蓝三个子像素组成(LED屏幕或LCD液晶屏幕,原理一样,均是三原色RGB)
5.2 CMYK(Cyan-Magenta-Yellow-Black)
CMYK 是一种用于彩色印刷的颜色模型,通过青(C)、品(M)、黄(Y)三原色油墨的不同网点面积率的叠印来表现丰富多彩的颜色和阶调。
原理:基于减色原理,通过吸收特定波长的光来呈现颜色。青色(Cyan)、品红(Magenta)、黄色(Yellow)是三种基本墨水颜色,黑色(Black)用于增强对比度和细节。
表示方法:颜色用四个分量表示,例如 (C, M, Y, K),每个分量的值通常在 0 到 100% 之间。例如,(0%, 0%, 0%, 100%) 表示纯黑色,(100%, 0%, 0%, 0%) 表示纯青色。
应用:主要用于印刷行业,如彩色印刷、喷墨打印机等。打印时,首先将计算机中RGB模型图像转化为CMYK模型(转换过程中可能会出现颜色偏差),准确控制墨水的使用,通过3原色油墨的不同网点面积率的叠印,实现彩色打印。
5.3 HSV(Hue-Saturation-Value)
HSV 是一种基于人类视觉感知的颜色模型,更符合人类对颜色的理解,便于调整颜色的明暗和饱和度,可通过公式和RGB模型进行转换。
原理:
色相(Hue):颜色的种类,如红、黄、绿等,用角度表示(0° 到 360°),对应于色轮上的位置。
饱和度(Saturation):颜色的纯度,范围从 0 到 1。饱和度为 0 时,颜色为灰色;饱和度为 1 时,颜色最鲜艳。
明度(Value):颜色的亮度,范围从 0 到 1。明度为 0 时,颜色为黑色;明度为 1 时,颜色最亮。
表示方法:颜色用三个分量表示,例如 (H, S, V)。例如,(0°, 1, 1) 表示纯红色,(120°, 1, 1) 表示纯绿色。具体在程序中的体现,H的范围位 0 ~ 360 或 归一化到 0 ~ 1 范围。
应用:广泛用于图像处理、图形设计和颜色选择工具,因为这种模型更直观地描述了颜色的视觉特性。
5.4 HSL(Hue-Saturation-Lightness)颜色模型
HSL 是另一种基于人类视觉的颜色模型,与 HSV 类似,但在某些方面有所不同。
原理:
色相(Hue):与 HSV 中的色相相同,用角度表示(0°到360°)。
饱和度(Saturation):表示颜色的鲜艳程度,范围从 0 到 1。
明度(Lightness):表示颜色的明亮程度,范围从 0 到 1。与 HSV 的明度不同,HSL 的明度更接近于颜色的中间值(灰色)。
表示方法:颜色用三个分量表示,例如 (H, S, L)
应用:常用于图形设计和网页设计,因为 HSL 模型在调整颜色时更符合人类的视觉感知。
5.5 LAB(CIE Lab*)颜色模型
LAB 是一种基于人类视觉感知的色彩模型,用于精确描述颜色。
原理:
L:表示亮度,范围从 0(黑色)到 100(白色)
a 和 b:表示颜色的两个轴,分别表示从绿色到红色(a轴)和从蓝色到黄色(b轴)
表示方法:颜色用三个分量表示,例如 (L, a, b)
应用:用于颜色管理、图像编辑和颜色校准,因为它能够更准确地描述颜色的视觉差异
优点:与人类视觉感知一致,能够更准确地表示颜色的差异。
缺点:计算复杂,与 RGB 和 CMYK 模型的转换较为困难。
5.6 灰度(Grayscale)模型
灰度模型是一种特殊的颜色模型,只表示颜色的明暗程度。
原理:通过一个单一的数值表示颜色的亮度,范围通常是 0 到 255(8位),其中 0 表示黑色,255 表示白色。
表示方法:颜色用一个分量表示,例如 (Gray)。例如,(0) 表示黑色,(255) 表示白色,(128) 表示中性灰色
应用:用于黑白图像、文档扫描、医学成像等领域。
5.7 HEX(Hexadecimal Color Space) 颜色模型
HEX 是一种基于 RGB 模型的编码方式,能与 RGB 模型直接对应,主要用于网页设计。
原理:将 RGB 模型中的每个分量用十六进制表示,范围从 00 到 FF。
表示方法:颜色用一个六位的十六进制数表示,例如 #RRGGBB。例如,#FF0000 表示纯红色,#000000 表示黑色,#FFFFFF 表示白色。
应用:主要用于 HTML 和 CSS 中的颜色表示。
六、常见图像格式
JPEG:有损压缩、压缩比高
优点:广泛支持、压缩比高、适用于照片和复杂图像。
缺点:有损压缩,可能导致图像质量损失。
场景:照片、网页图像
PNG:无损压缩、图片大,支持半透明
优点:无损压缩、支持透明度、适用于图标和图形
缺点:文件大小较大
场景:图标、图形、需要透明背景的图像,如桌面图标
BMP:无损压缩、图片大[windows系统]
优点:无损压缩、适用于Windows系统和位图编辑
缺点:文件大小较大、不适合Web应用
场景:windows系统、位图编辑
BMP格式的特点是它直接存储图像的像素数据,没有进行数据压缩,这使得图像质量得以完全保留,但也导致文件体积相对较大
GIF:支持动画、色彩受限,图像低分辨率[简单图像]
优点:支持动画、适用于简单图像和图标
缺点:色彩受限、不适合复杂图像
场景:动图、低分辨率图像
参考:
图片专栏——概念_像素值-CSDN博客
(99+ 封私信 / 82 条消息) 图像基础知识 - 知乎
颜色模型介绍-CSDN博客