计算机视觉色彩空间全解析:RGB、HSV与Lab的实战对比


计算机视觉色彩空间全解析:RGB、HSV与Lab的实战对比
- 一、前言
- 二、RGB 色彩空间
- 2.1 RGB 色彩空间原理
- 2.1.1 基本概念
- 2.1.2 颜色混合机制
- 2.2 RGB 在计算机视觉中的应用
- 2.2.1 图像读取与显示
- 2.2.2 颜色识别
- 2.2.3 RGB 色彩空间的局限性
- 三、HSV 色彩空间
- 3.1 HSV 色彩空间原理
- 3.1.1 定义与参数
- 3.1.2 色彩模型表示
- 3.2 HSV 在计算机视觉中的应用
- 3.2.1 基于颜色范围的目标提取
- 3.2.2 图像增强与颜色调整
- 3.2.3 HSV 的优势与适用场景
- 四、Lab 色彩空间
- 4.1 Lab 色彩空间原理
- 4.1.1 感知均匀性
- 4.1.2 与其他色彩空间的转换
- 4.2 Lab 在计算机视觉中的应用
- 4.2.1 图像分割与颜色聚类
- 4.2.2 图像增强与去雾
- 4.2.3 Lab 色彩空间的特点与适用范围
- 五、RGB、HSV 与 Lab 色彩空间的实战对比
- 5.1 颜色识别任务对比
- 5.2 图像分割任务对比
- 5.3 目标跟踪任务对比
- 5.4 图像融合任务对比
- 5.5 综合对比与选择建议
- 5.6 新兴研究方向中的色彩空间应用探索
- 5.7 跨领域应用中的色彩空间融合与拓展
- 六、未来发展趋势与展望
- 致读者一封信
计算机视觉色彩空间全解析:RGB、HSV与Lab的实战对比,在计算机视觉领域,准确理解和处理颜色信息至关重要。色彩空间作为定义颜色的数学模型,为我们提供了不同的方式来描述和操作颜色。常见的色彩空间有 RGB、HSV 和 Lab 等,它们各自具有独特的特性和应用场景。本文将深入探讨这三种色彩空间,通过详细的原理讲解、丰富的代码示例以及实际应用场景的对比,帮助读者全面掌握它们在计算机视觉中的应用。

一、前言
计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智能系统。这里所指的信息指Shannon定义的,可以用来帮助做一个“决定”的信息。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。
👉👉👉 🥇 点击进入计算机视觉专栏,计算机视觉(CV)是人工智能的重要分支,致力于让机器通过数字图像或视频获取、处理和分析视觉信息,并模拟人类视觉的认知能力。本专栏涵盖基础概念、技术应用、前沿研究和实战案例等方向。
👉👉👉 🥇 点击进入计算机网络技术专栏,本专栏旨在深入探讨计算机网络的核心概念、关键技术、协议标准以及最新发展趋势,帮助读者全面理解网络通信的原理与实践。
👉👉👉 🥇 点击进入网络安全知识专栏,本专栏详细介绍了网络安全入门:理解基本概念和术语,网络安全的五大核心领域:防护、检测、响应、恢复与治理,常见的网络攻击类型及防范技巧,网络安全防护层次:从物理到应用的多重保障,企业网络安全的十大挑战及解决方案等。
二、RGB 色彩空间
2.1 RGB 色彩空间原理
2.1.1 基本概念
RGB 色彩空间构建于红(Red)、绿(Green)、蓝(Blue)这三种基础颜色之上,通过对这三种颜色通道强度进行不同比例的调配,能够衍生出缤纷多彩的颜色世界。在计算机的数字世界里,通常采用 0 - 255 这一整数区间来量化每种颜色通道的强度数值。其中,0 代表该颜色分量处于完全缺失的状态,而 255 则意味着该颜色分量达到了最强的表现。以常见的纯色为例,纯红色可简洁地表示为(255, 0, 0),此时红色通道全力输出,绿色与蓝色通道则处于关闭状态;纯绿色表示为(0, 255, 0),绿色通道满值,红、蓝通道归零;纯蓝色对应(0, 0, 255),蓝色通道达最大值,其余两个通道无输出。白色的表示为(255, 255, 255),意味着红、绿、蓝三种颜色通道同时以最强强度混合,共同呈现出明亮的白色;黑色(0, 0, 0)则是三种颜色通道均无信号输出的结果。这种加法混色模型在现代显示技术中得到了极为广泛的应用,电脑显示器、电视屏幕等显示设备正是巧妙利用这一原理,通过精准调控红、绿、蓝三种发光二极管(LED)或液晶像素的发光强度,为用户呈现出栩栩如生、绚丽多姿的图像和视频内容。
2.1.2 颜色混合机制
当三种颜色通道的强度按照不同比例相互交织混合时,神奇的色彩变化便会应运而生。以黄色为例,它是红色和绿色充分混合的产物,在 RGB 色彩空间中被表示为(255, 255, 0)。这是因为在生成黄色的过程中,红色通道和绿色通道的强度同时达到了最大值 255,而蓝色通道的强度维持在 0,从而形成了我们所熟知的黄色视觉效果。同理,品红色作为红色和蓝色的混合色,其 RGB 表示为(255, 0, 255),即红色通道与蓝色通道全力输出,绿色通道关闭;青色则是绿色和蓝色的融合,对应(0, 255, 255),此时绿色与蓝色通道满值,红色通道无信号。理论上,基于这种组合方式,通过对每个通道 256 种不同强度值(0 - 255)的排列组合,可以生成数量多达256×256×256=16,777,216种的不同颜色。如此庞大的色彩数量,几乎能够涵盖人眼所能感知的绝大部分颜色范围,为计算机视觉系统提供了丰富的颜色素材,以满足各种复杂场景下对颜色的精确描述需求。
2.2 RGB 在计算机视觉中的应用
2.2.1 图像读取与显示
在 Python 的计算机视觉开发中,OpenCV 库凭借其强大的功能和便捷的接口,成为众多开发者处理图像的首选工具。在使用 OpenCV 读取和显示图像时,虽然其内部在数据存储和处理时采用的是 BGR(蓝、绿、红)顺序,但在图像展示以及与其他遵循 RGB 标准的模块交互时,我们可以将其视为 RGB 格式进行相应的转换操作。以下为一段简洁明了的代码示例,用以展示如何使用 OpenCV 读取并正确显示 RGB 图像:
import cv2
import numpy as np
# 读取图像
image = cv2.imread('example.jpg')
# 将BGR转换为RGB(OpenCV读取为BGR格式)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
cv2.imshow('RGB Image', image_rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这段代码中,cv2.imread函数承担着从磁盘读取图像文件的重任,它会将图像数据以 BGR 格式加载到内存中。紧接着,cv2.cvtColor函数发挥关键作用,它依据预定义的色彩空间转换规则,将 BGR 格式的图像数据精准地转换为 RGB 格式,以确保后续图像显示时颜色的正确性。cv2.imshow函数负责在屏幕上创建一个窗口,并将转换后的 RGB 图像展示给用户。cv2.waitKey(0)则使程序进入等待状态,直到用户按下键盘上的任意按键,程序才会继续执行后续操作。最后,cv2.destroyAllWindows函数用于关闭之前创建的所有图像显示窗口,释放相关的系统资源,保证程序的正常退出和资源的有效管理。
2.2.2 颜色识别
在一些相对简单的颜色识别任务场景中,RGB 色彩空间提供了一种直接且直观的实现途径。通过设定特定的 RGB 颜色范围,计算机视觉系统能够快速识别出图像中符合该范围的特定颜色物体。例如,若要在一幅图像中精准识别出红色物体,可以依据红色在 RGB 色彩空间中的典型特征,设定一个合理的颜色范围,如(R > 180, G < 100, B < 100)。以下是一段具体的代码实现示例:
import cv2
import numpy as np
image = cv2.imread('example.jpg')
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
height, width, _ = image_rgb.shape
for y in range(height):for x in range(width):r, g, b = image_rgb[y, x]if r > 180 and g < 100 and b < 100:image_rgb[y, x] = [255, 0, 0] # 将识别到的红色区域标记为纯红
cv2.imshow('Red Detection in RGB', image_rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()
这段代码通过嵌套的循环结构,逐行逐列地遍历图像中的每一个像素点。对于每一个像素,首先获取其对应的 RGB 颜色值(r, g, b),然后将这些值与预先设定的红色颜色范围进行比对。一旦某个像素的 RGB 值满足(R > 180, G < 100, B < 100)这一条件,就判定该像素属于红色物体的一部分,并将其颜色值直接修改为纯红色(255, 0, 0),以便在后续的图像展示中能够清晰地标记出识别到的红色区域。最后,通过cv2.imshow等函数将处理后的图像展示给用户,实现颜色识别结果的可视化呈现。
2.2.3 RGB 色彩空间的局限性
尽管 RGB 色彩空间在计算机视觉领域有着广泛的应用,但它在处理颜色时也暴露出一些明显的局限性。其一,RGB 色彩空间对光照变化极为敏感。由于 RGB 值直接反映了颜色的强度信息,当光照条件发生改变时,物体表面对光线的反射特性也会随之改变,进而导致物体表面颜色的反射光强度发生显著变化,最终使得 RGB 值产生较大波动。这一特性在实际应用中可能会严重影响颜色识别的准确性。例如,在强光直射的环境下拍摄的红色物体,其 RGB 值可能会因为光线过强而导致红色通道数值异常增大,同时绿色和蓝色通道也可能受到一定程度的影响;而在弱光条件下,红色物体的 RGB 值整体可能会偏低,且通道之间的比例关系也可能发生变化。这种因光照变化导致的 RGB 值不稳定,给基于 RGB 色彩空间的颜色识别任务带来了极大的挑战。
其二,RGB 色彩空间在感知上呈现出不均匀性。这意味着人眼对于不同颜色的感知差异与 RGB 值的变化量之间并非呈现简单的线性关系。举例来说,在 RGB 空间中,从(255, 0, 0)(纯红色)到(250, 0, 0)的数值变化,与从(128, 0, 0)到(123, 0, 0)的数值变化,虽然在 RGB 值上的间隔都是 5,但在人眼的视觉感知中,前者所呈现出的颜色变化明显比后者更为显著。这种感知不均匀性使得在 RGB 空间中进行颜色比较、颜色调整等操作时,难以准确地反映人眼对颜色的真实感知,在一些对颜色准确性和视觉效果要求较高的应用场景中,可能会导致不理想的结果。
三、HSV 色彩空间
3.1 HSV 色彩空间原理
3.1.1 定义与参数
HSV(Hue, Saturation, Value)色彩空间从人类对颜色的感知特性出发,创新性地采用色调(Hue)、饱和度(Saturation)和明度(Value)这三个关键参数来全面描述颜色。其中,色调 H 作为颜色的核心属性之一,用于界定颜色的种类,其取值范围通常被规范在 0 - 360 度的区间内,这个区间巧妙地对应了彩虹的颜色顺序。具体而言,红色被定义为 0 度或 360 度,恰似彩虹的起始与终结之色;绿色位于 120 度的位置,代表着大自然中生机盎然的色彩;蓝色则处于 240 度,展现出深邃、冷静的特质。通过这一连续的角度变化,HSV 色彩空间能够精确地涵盖人类视觉可感知的各种色调。
饱和度 S 主要用于衡量颜色的鲜艳程度,其取值范围一般设定在 0 - 100% 之间。当饱和度为 0% 时,意味着颜色完全失去了鲜艳度,呈现为纯粹的灰色,此时颜色中不含有任何单一色调的倾向性;而当饱和度达到 100% 时,则表示该色调处于最鲜艳、最纯净的状态,颜色中单一色调的特征最为突出,没有受到任何灰色成分的干扰。
明度 V 则用于表示颜色的明亮程度,同样取值于 0 - 100% 的范围。当明度为 0% 时,颜色呈现为完全的黑色,即没有任何光线反射;而当明度达到 100% 时,颜色达到最亮状态,趋近于白色,此时颜色的亮度达到了最大值。
3.1.2 色彩模型表示
HSV 色彩空间可以通过一个直观形象的圆锥体模型来进行可视化展示。在这个圆锥体模型中,圆锥体的顶点对应着黑色(V = 0),象征着没有任何光线和颜色信息的黑暗状态。圆锥体的底面圆心则代表着白色(V = 100%, S = 0),此时颜色的亮度达到最大值,但由于饱和度为 0,所以呈现为没有任何色调倾向的白色。底面圆周上的各个点则分别对应着不同色调且饱和度最高(S = 100%)的颜色,这些颜色构成了一个色彩斑斓的圆环,展示了各种纯净色调的极致表现。从底面圆周向圆心方向移动,饱和度逐渐降低,颜色也随之变得越来越淡,呈现出从鲜艳纯色到柔和浅色的过渡变化;而沿着圆锥体的轴线方向,从底部向顶部移动,明度逐渐增加,颜色从最初的黑色逐渐变亮,直至顶部的白色,清晰地展现了明度对颜色亮度的影响过程。这种独特的表示方式与人类对颜色的感知方式高度契合,相较于 RGB 色彩空间,HSV 在处理与颜色感知相关的任务时,能够提供更为直观、准确的颜色描述和操作方式,具有显著的优势。
3.2 HSV 在计算机视觉中的应用
3.2.1 基于颜色范围的目标提取
在计算机视觉的众多实际应用场景中,基于颜色范围的目标提取是一项常见且重要的任务。HSV 色彩空间凭借其对光照变化相对不敏感的特性,以及色调 H 在不同光照条件下的稳定性,成为解决此类任务的有力工具。通过合理设定 HSV 颜色范围,计算机视觉系统能够更加精准地从复杂背景中提取出特定颜色的物体。例如,在一幅包含多种颜色物体的图像中,若要精准提取出绿色物体,可以按照以下步骤进行操作:
import cv2
import numpy as np
image = cv2.imread('example.jpg')
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 设定绿色在HSV空间中的范围
lower_green = np.array([40, 50, 50])
upper_green = np.array([80, 255, 255])
mask = cv2.inRange(image_hsv, lower_green, upper_green)
result = cv2.bitwise_and(image, image, mask = mask)
cv2.imshow('Green Object Extraction in HSV', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
首先,使用cv2.cvtColor函数将图像从 BGR 格式转换为 HSV 格式,以便后续在 HSV 色彩空间中进行颜色范围的筛选操作。接着,根据绿色在 HSV 色彩空间中的大致范围,设定了lower_green和upper_green两个数组,分别表示绿色范围的下限和上限。这里,下限lower_green设定为(40, 50, 50),表示色调 H 在 40 左右,饱和度 S 不低于 50,明度 V 不低于 50;上限upper_green设定为(80, 255, 255),即色调 H 在 80 左右,饱和度 S 最高可达 255,明度 V 也最高可达 255。然后,通过cv2.inRange函数,根据设定的颜色范围在 HSV 图像中创建一个掩码(mask)。该掩码是一个二值图像,其中满足绿色范围的像素点被设置为 255(白色),不满足的则被设置为 0(黑色)。最后,利用cv2.bitwise_and函数,将原始图像与掩码进行按位与操作,从而提取出图像中所有绿色物体的部分,并将结果展示给用户。
3.2.2 图像增强与颜色调整
HSV 色彩空间在图像增强和颜色调整方面展现出了极高的便利性和灵活性。例如,在实际应用中,我们常常需要通过调整图像的饱和度和明度来增强图像的色彩鲜艳度和整体亮度,以提升图像的视觉效果。以下代码展示了如何将图像的饱和度提高 50%:
import cv2
import numpy as np
image = cv2.imread('example.jpg')
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(image_hsv)
s = np.clip(s * 1.5, 0, 255).astype(np.uint8) # 饱和度提高50%
image_hsv = cv2.merge((h, s, v))
image_enhanced = cv2.cvtColor(image_hsv, cv2.COLOR_HSV2BGR)
cv2.imshow('Enhanced Image in HSV', image_enhanced)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这段代码中,首先通过cv2.cvtColor函数将原始 BGR 图像转换为 HSV 格式,以便后续对各个通道进行单独操作。然后,使用cv2.split函数将 HSV 图像拆分为色调(h)、饱和度(s)和明度(v)三个独立的通道。接着,对饱和度通道(s)进行增强操作,将其数值乘以 1.5,从而实现饱和度提高 50% 的效果。在这一过程中,为了确保处理后的数值仍然在 0 - 255 的有效范围内,使用np.clip函数对结果进行了裁剪,并将数据类型转换为无符号 8 位整数(np.uint8)。完成饱和度通道的增强后,再通过cv2.merge函数将调整后的色调、饱和度和明度通道重新合并为一个 HSV 图像。最后,使用cv2.cvtColor函数将增强后的 HSV 图像转换回 BGR 格式,以便在常规的图像显示环境中展示给用户,让用户直观地感受到图像饱和度增强后的视觉效果提升。
3.2.3 HSV 的优势与适用场景
HSV 色彩空间的主要优势集中体现在其对光照变化的出色鲁棒性以及与人类视觉感知的高度一致性。这种对光照变化的鲁棒性使得在复杂光照环境下,基于 HSV 色彩空间的颜色处理算法能够保持相对稳定的性能,准确地识别和处理颜色信息。例如,在户外场景中,光照条件会随着时间、天气等因素不断变化,但 HSV 色彩空间中的色调 H 相对稳定,不会因光照变化而发生显著变化,这就保证了基于色调 H 设定的颜色范围在不同光照下仍能有效识别特定颜色物体。而其与人类视觉感知的一致性,使得在进行图像增强、颜色调整等需要考虑人眼视觉效果的任务时,HSV 色彩空间能够提供更加直观、符合人类视觉习惯的操作方式。
HSV 色彩空间适用于众多对光照变化敏感且需要基于颜色特征进行处理的计算机视觉场景。在农业领域,利用 HSV 色彩空间可以在不同光照的田间环境下,通过识别农作物或病虫害的特定颜色,进行生长状况监测与病虫害预警。在工业生产中,对于产品表面颜色质量检测,即使在车间复杂光照条件下,HSV 色彩空间也能精准定位颜色缺陷区域。在艺术创作与图像处理软件中,HSV 色彩空间方便设计师基于人眼对颜色的感知,灵活调整图像颜色,实现创意构思。
四、Lab 色彩空间
4.1 Lab 色彩空间原理
4.1.1 感知均匀性
Lab 色彩空间是一种与设备无关的色彩模型,其核心设计理念是实现颜色在感知层面的均匀性。它由一个亮度通道 L 和两个颜色通道 a(从绿色到红色)、b(从蓝色到黄色)构成。L 通道的取值范围常规设定为 0 - 100,用于表征颜色的亮度信息,0 代表完全的黑色,此时没有任何光线反射;100 则表示最亮的白色,光线反射达到最大值。a 通道和 b 通道的取值范围一般处于 -128 到 127 之间,a 通道为正时偏向红色调,值越大红色越明显;为负时则偏向绿色调,绝对值越大绿色越突出。b 通道为正时呈现黄色调,数值越大黄色越浓郁;为负时偏向蓝色调,绝对值越大蓝色越浓重。在 Lab 色彩空间中,颜色之间的欧几里得距离与人类视觉感知到的颜色差异具有较高的一致性。这意味着在该空间内,相同距离的颜色变化在人眼看来,具有相似的视觉感知差异,有效克服了 RGB 色彩空间在感知均匀性方面的固有缺陷。例如,在 Lab 空间中,从颜色 A 到颜色 B 的距离与从颜色 C 到颜色 D 的距离若相等,那么人眼对这两组颜色变化的感知程度也基本相同,这为颜色的精确比较、调整以及图像分割等任务提供了更可靠的依据。
4.1.2 与其他色彩空间的转换
Lab 色彩空间与常见的 RGB 色彩空间之间能够进行相互转换,但这一转换过程较为复杂,通常需要借助 XYZ 色彩空间作为中间过渡。从 RGB 转换到 Lab,首先要将 RGB 值转换为 XYZ 值,该转换涉及到一系列基于标准观察者颜色匹配函数的矩阵运算。以 sRGB 色彩空间为例,其转换到 XYZ 的矩阵运算公式如下:

是经过归一化(取值范围 0 - 1)的 RGB 值。得到 XYZ 值后,再通过特定的非线性变换得到 Lab 值。在 Python 的 OpenCV 库中,开发者无需手动实现这些复杂运算,可通过简洁的函数调用完成转换。例如,将 RGB 图像转换为 Lab 图像的代码如下:
import cv2
import numpy as np
image = cv2.imread('example.jpg')
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image_lab = cv2.cvtColor(image_rgb, cv2.COLOR_RGB2Lab)
在这段代码中,首先利用cv2.cvtColor函数将 OpenCV 默认读取的 BGR 格式图像转换为 RGB 格式,接着再次使用cv2.cvtColor函数,依据内部预设的转换算法,将 RGB 图像高效地转换为 Lab 格式,为后续在 Lab 色彩空间中的图像处理操作奠定基础。
4.2 Lab 在计算机视觉中的应用
4.2.1 图像分割与颜色聚类
鉴于 Lab 色彩空间的感知均匀性,其在图像分割和颜色聚类任务中展现出卓越的性能。在图像分割任务里,依据 Lab 颜色空间中颜色的差异特性,能够将图像精确划分为不同的区域。例如,运用 K - Means 聚类算法在 Lab 空间对图像进行颜色聚类,从而实现图像分割。K - Means 算法是一种迭代求解的聚类分析算法,其核心思想是将数据点划分为 K 个簇,使得同一簇内的数据点相似度较高,而不同簇之间的数据点相似度较低。在 Lab 色彩空间中应用该算法的代码示例如下:
import cv2
import numpy as np
from sklearn.cluster import KMeans
image = cv2.imread('example.jpg')
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image_lab = cv2.cvtColor(image_rgb, cv2.COLOR_RGB2Lab)
pixels = image_lab.reshape((-1, 3))
kmeans = KMeans(n_clusters = 5)
kmeans.fit(pixels)
labels = kmeans.labels_
centers = kmeans.cluster_centers_.astype(np.uint8)
segmented_pixels = centers[labels]
segmented_image = segmented_pixels.reshape(image.shape)
cv2.imshow('Segmented Image in Lab', segmented_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这段代码中,首先将读取的图像依次转换为 RGB 和 Lab 格式。然后,使用reshape函数将 Lab 图像的三维像素数据转换为二维数组,以便于 K - Means 算法处理,其中-1表示自动计算该维度的大小,确保数据形状转换的正确性。接着,创建 K - Means 聚类模型,设定聚类数量为 5(可根据实际图像的复杂程度和分割需求进行调整),并使用fit函数对像素数据进行聚类分析。聚类完成后,通过labels_属性获取每个像素所属的簇标签,通过cluster_centers_属性获取每个簇的中心颜色值,并将其转换为无符号 8 位整数类型。之后,根据簇标签将每个像素替换为对应簇的中心颜色值,重新构建分割后的图像数据,并将其恢复为原始图像的形状。最后,使用cv2.imshow等函数展示分割后的图像,直观呈现基于 Lab 色彩空间和 K - Means 算法的图像分割效果。
4.2.2 图像增强与去雾
Lab 色彩空间在图像增强和去雾等应用领域同样表现出色。以图像去雾为例,基于暗通道先验的去雾算法在 Lab 空间中能够有效去除雾气对图像的影响。暗通道先验理论指出,在绝大多数非天空的局部区域里,至少有一个颜色通道在某些像素上具有很低的值,这些像素构成了图像的暗通道。在 Lab 空间中,通过对亮度通道 L 进行特定处理来实现去雾。以下是一个简单的基于暗通道先验的图像去雾在 Lab 空间的实现示例:
import cv2
import numpy as np
def guided_filter(I, p, r, eps):height, width = I.shape[:2]N = cv2.boxFilter(np.ones((height, width), dtype=np.float32), -1, (r, r))mean_I = cv2.boxFilter(I, -1, (r, r)) / Nmean_p = cv2.boxFilter(p, -1, (r, r)) / Nmean_Ip = cv2.boxFilter(I * p, -1, (r, r)) / Ncov_Ip = mean_Ip - mean_I * mean_pmean_II = cv2.boxFilter(I * I, -1, (r, r)) / Nvar_I = mean_II - mean_I * mean_Ia = cov_Ip / (var_I + eps)b = mean_p - a * mean_Imean_a = cv2.boxFilter(a, -1, (r, r)) / Nmean_b = cv2.boxFilter(b, -1, (r, r)) / Nq = mean_a * I + mean_breturn q
def dehaze_lab(image):image_lab = cv2.cvtColor(image, cv2.COLOR_BGR2Lab)l, a, b = cv2.split(image_lab)dark_channel = np.min(l, axis = 2)omega = 0.95atmospheric_light = np.max(dark_channel.flatten())transmission = 1 - omega * dark_channel / atmospheric_lightrefined_transmission = guided_filter(l, transmission, 15, 0.001)refined_transmission = np.clip(refined_transmission, 0.1, 1)l = (l - atmospheric_light) / refined_transmission + atmospheric_lightl = np.clip(l, 0, 255).astype(np.uint8)dehazed_image_lab = cv2.merge((l, a, b))dehazed_image = cv2.cvtColor(dehazed_image_lab, cv2.COLOR_Lab2BGR)return dehazed_image
image = cv2.imread('hazy_image.jpg')
dehazed_image = dehaze_lab(image)
cv2.imshow('Original Hazy Image', image)
cv2.imshow('Dehazed Image in Lab', dehazed_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这段代码中,首先定义了一个guided_filter函数,用于实现引导滤波,该滤波方法能够在保持边缘信息的同时对图像进行平滑处理,在去雾算法中用于优化透射率估计。在dehaze_lab函数中,将输入图像转换为 Lab 格式并分离出亮度通道 l。通过计算亮度通道的最小值得到暗通道dark_channel,依据暗通道先验理论估算大气光强度atmospheric_light,进而计算出初始透射率transmission。接着,利用guided_filter函数对透射率进行优化得到refined_transmission,并通过np.clip函数将透射率限制在合理范围内(0.1 - 1),以避免数值异常。然后,根据去雾模型公式对亮度通道 l 进行处理,恢复无雾时的亮度信息。最后,将处理后的亮度通道与原 a、b 通道合并为 Lab 图像,再转换回 BGR 格式返回去雾后的图像。通过对比去雾前后的图像,可明显看到 Lab 色彩空间在图像去雾方面的有效性,能够显著提升图像的清晰度和可见性。
4.2.3 Lab 色彩空间的特点与适用范围
Lab 色彩空间的显著特点在于其感知均匀性和设备无关性。感知均匀性使得在进行颜色相关操作时,能够更准确地反映人眼对颜色的真实感知,在需要精确颜色区分和比较的任务中优势明显。设备无关性则意味着无论使用何种图像采集设备(如不同品牌和型号的相机)或显示设备(如电脑显示器、投影仪),Lab 色彩空间中的颜色定义和表现都能保持相对一致,避免了因设备差异导致的颜色偏差。
基于这些特点,Lab 色彩空间在众多对颜色准确性和一致性要求极高的计算机视觉任务中得到广泛应用。在医学图像分析领域,准确区分不同组织的颜色特征对于疾病诊断至关重要,Lab 色彩空间能够提供可靠的颜色信息,辅助医生精准识别病变组织。在印刷出版行业,为确保印刷品颜色与设计稿颜色高度一致,Lab 色彩空间可作为颜色转换和校对的标准,有效消除因不同设备色彩表现差异带来的颜色失真问题。在跨平台、跨设备的图像传输和处理场景中,Lab 色彩空间的设备无关性确保了颜色的一致性,保障了图像内容的准确传达和处理效果的稳定性。
五、RGB、HSV 与 Lab 色彩空间的实战对比
5.1 颜色识别任务对比
在颜色识别任务中,RGB、HSV 和 Lab 色彩空间展现出各自不同的性能特点。RGB 色彩空间由于其简单直观的颜色表示方式,在一些对光照条件要求不高、颜色特征明显且单一的场景下,能够快速实现颜色识别。例如,在一个室内固定光照环境下,识别简单红色物体,通过设定 RGB 颜色范围(R > 180, G < 100, B < 100),能够较为准确地识别出红色区域。然而,一旦光照条件发生变化,如从室内柔和灯光切换到室外强光直射或弱光阴影环境,物体表面的 RGB 值会发生显著改变,导致基于固定 RGB 范围的颜色识别出现大量误判。
HSV 色彩空间在颜色识别方面,尤其是面对复杂光照条件时,表现出明显优于 RGB 的特性。由于色调 H 对光照变化相对不敏感,在不同光照环境下能够保持相对稳定,通过合理设定 HSV 颜色范围,能够更可靠地识别特定颜色。例如,在户外不同时间(早晨、中午、傍晚)和天气(晴天、阴天)条件下拍摄的图像中,要识别绿色植物,利用 HSV 色彩空间设定绿色范围(如色调 H 在 40 - 80 之间,饱和度 S 和明度 V 在一定合理区间),能够在多种光照变化下准确提取绿色植物区域,大大提高了颜色识别的鲁棒性。
Lab 色彩空间在颜色识别任务中,凭借其感知均匀性,能够实现高精度的颜色区分。在一些对颜色识别精度要求极高的工业检测场景中,如电子芯片生产中对微小元件颜色一致性的检测,Lab 色彩空间能够准确衡量颜色之间的细微差异。通过计算 Lab 空间中颜色的欧几里得距离,可精确判断元件颜色是否符合标准,相比 RGB 和 HSV,能更准确地识别出颜色偏差,确保产品质量控制的严格性。
5.2 图像分割任务对比
在图像分割任务中,RGB 色彩空间由于其感知不均匀性,在基于颜色聚类的分割方法中面临诸多挑战。例如,使用 K - Means 聚类算法在 RGB 空间对图像进行分割时,由于人眼对 RGB 值变化的感知并非线性,可能导致聚类结果与实际图像区域划分不符,分割边界模糊,无法准确分离不同颜色的物体。例如,在一幅包含多种颜色水果的图像中,红色苹果和粉色桃子的 RGB 值较为接近,在 RGB 空间聚类时容易被错误地划分到同一类,无法实现精确分割。
HSV 色彩空间在简单的基于颜色的图像分割中表现良好。其直观的色调、饱和度和明度表示方式,使得基于颜色范围的分割操作更加符合人类视觉感知。例如,在分割一幅包含蓝天、绿草和黄色花朵的风景图像时,通过设定不同颜色在 HSV 空间的范围,能够有效地将蓝天、绿草和黄色花朵分别分割出来。但在处理一些颜色过渡复杂、相似颜色较多的图像时,HSV 色彩空间也可能出现分割不准确的情况。例如,在一幅具有多种深浅绿色植被的森林图像中,由于不同植被的 HSV 值存在重叠,单纯基于 HSV 颜色范围分割可能会导致部分植被区域被错误合并或分割不完整。
Lab 色彩空间在图像分割任务中展现出独特优势。其感知均匀性使得基于颜色差异的分割更加准确和稳定。通过在 Lab 空间中利用聚类算法或其他分割方法,能够更好地捕捉图像中不同区域的颜色特征差异,实现更精细的图像分割。例如,在医学图像分割中,对于脑部 MRI 图像,Lab 色彩空间能够准确区分不同组织(如灰质、白质、脑脊液)的颜色差异,为医学诊断提供更精确的图像分割结果,辅助医生更清晰地观察脑部结构和病变情况。在复杂的自然场景图像分割中,Lab 色彩空间也能有效应对颜色过渡和相似颜色的挑战,准确划分不同物体和背景区域,提高图像分割的质量和可靠性。
通过对 RGB、HSV 和 Lab 色彩空间在颜色识别和图像分割等常见计算机视觉任务中的实战对比,可以清晰地看到每种色彩空间都有其适用的场景和局限性。在实际应用中,开发者需要根据具体任务需求、图像特点以及对颜色处理的精度要求,合理选择合适的色彩空间,以实现最佳的计算机视觉效果。随着计算机视觉技术的不断发展,对色彩空间的研究和应用也在持续深入,未来有望出现更优化、更智能的色彩空间模型,进一步推动计算机视觉技术在各个领域的广泛应用和创新发展。
5.3 目标跟踪任务对比
在目标跟踪任务中,RGB 色彩空间的应用较为基础但面临诸多挑战。由于 RGB 值易受光照变化影响,当目标物体在不同光照环境下移动时,其 RGB 特征会显著改变,导致跟踪器容易丢失目标。例如在户外场景下,行人从树荫下走到阳光下,其衣服的 RGB 颜色值会发生明显变化,基于 RGB 特征的跟踪算法可能会将其误判为不同目标,从而无法持续稳定地跟踪。
HSV 色彩空间在目标跟踪方面有一定优势。其色调 H 的相对稳定性有助于在光照变化时保持对目标颜色特征的有效描述。例如在对交通场景中的黄色校车进行跟踪时,即便校车在不同时段、不同光照条件下行驶,通过设定合适的 HSV 颜色范围(重点关注黄色的色调区间),跟踪算法能够较为稳定地识别校车颜色,持续跟踪目标。然而,当目标颜色与背景颜色在 HSV 空间中的某些参数相近时,可能会出现误跟踪情况。比如在一个周围有大量浅黄色建筑物的场景中跟踪黄色校车,若 HSV 范围设定不当,建筑物的颜色可能会干扰对校车的跟踪。
Lab 色彩空间在目标跟踪中凭借其感知均匀性和设备无关性,能提供更稳定、精确的目标特征描述。在工业生产线上对特定颜色零部件的跟踪场景中,Lab 色彩空间可以准确区分零部件与周围环境的颜色差异,即使在不同成像设备采集的图像序列中,也能保证颜色特征的一致性。通过计算 Lab 空间中目标颜色与候选区域颜色的欧几里得距离,跟踪算法能够精确判断目标位置,有效避免因光照和设备差异导致的目标丢失,提高目标跟踪的准确性和鲁棒性。
5.4 图像融合任务对比
在图像融合任务里,RGB 色彩空间的融合效果受限于其对颜色的表示方式。由于 RGB 通道之间相关性较强,直接在 RGB 空间进行图像融合可能导致融合后的图像颜色失真或细节丢失。例如将不同曝光时间拍摄的同一场景 RGB 图像进行融合时,若简单地对 RGB 通道数值进行加权平均,可能会使融合图像的颜色偏离真实场景,无法准确还原物体的颜色和细节信息。
HSV 色彩空间为图像融合提供了不同的思路。可以分别对色调 H、饱和度 S 和明度 V 通道进行融合操作,然后再合成最终图像。在一些需要保留图像色彩感知特征的融合任务中,HSV 空间表现较好。比如在将一幅正常光照下的风景图像与一幅经过艺术滤镜处理(主要改变颜色鲜艳度和色调)的同场景图像进行融合时,通过合理调整 HSV 通道的融合权重,能够在保留原始图像基本场景结构的同时,融入滤镜图像的色彩风格,使融合图像既具有真实感又带有独特的艺术效果。但在处理多光谱图像融合等复杂场景时,HSV 空间可能无法充分利用图像的全部信息,导致融合效果不理想。
Lab 色彩空间在图像融合任务中展现出独特优势。其亮度通道 L 和颜色通道 a、b 相对独立的特性,使得在融合过程中可以分别对亮度信息和颜色信息进行针对性处理。在医学图像融合领域,将 CT 图像(主要提供解剖结构的亮度信息)与 MRI 图像(包含组织特征的颜色信息)进行融合时,Lab 色彩空间能够准确地将 CT 图像的亮度信息与 MRI 图像的颜色信息进行整合。通过在 Lab 空间中对亮度通道 L 和颜色通道 a、b 进行适当的融合算法操作(如基于多分辨率分析的融合方法),可以生成既包含清晰解剖结构又能准确反映组织特征颜色的融合图像,为医生提供更全面、准确的诊断信息。在遥感图像融合中,Lab 色彩空间也能有效融合不同传感器获取的图像信息,提高融合图像的质量和信息丰富度。
5.5 综合对比与选择建议
综上所述,RGB、HSV 和 Lab 色彩空间在计算机视觉的不同任务中各有优劣。RGB 色彩空间简单直观,在对光照和颜色精度要求不高的简单场景下能快速实现颜色相关操作,但在复杂光照和高精度颜色处理任务中表现欠佳。HSV 色彩空间对光照变化有一定鲁棒性,其基于人类视觉感知的参数表示使其在基于颜色特征的任务(如颜色识别、简单图像分割)中表现良好,但在面对复杂颜色分布和高精度颜色区分场景时存在局限性。Lab 色彩空间的感知均匀性和设备无关性使其在对颜色准确性和一致性要求极高的任务(如工业检测、医学图像分析、高精度图像分割)中表现卓越,但转换过程相对复杂,计算成本较高。
在实际应用中,开发者应根据具体任务的特点和需求来选择合适的色彩空间。若任务处于固定光照环境且对颜色处理精度要求不高,如简单的室内物体颜色分类,RGB 色彩空间可能是合适选择,因其简单高效。当任务面临复杂光照变化且需基于颜色特征进行处理时,如户外植物种类识别,HSV 色彩空间能有效提升算法的鲁棒性。对于那些对颜色准确性和一致性要求苛刻的任务,如医学影像诊断、工业产品质量检测,Lab 色彩空间则能提供更可靠的颜色信息处理能力,确保任务的高质量完成。随着计算机硬件性能的不断提升和算法的持续优化,未来或许能看到多种色彩空间结合使用的混合策略,充分发挥各色彩空间的优势,进一步拓展计算机视觉技术在更广泛领域的应用边界。例如在一些复杂的智能安防监控系统中,可能在初始目标检测阶段利用 HSV 色彩空间快速筛选出潜在目标区域,然后在目标识别和跟踪阶段切换到 Lab 色彩空间,以实现更精准的目标分析和持续跟踪,为安全保障提供更强大的技术支持。
5.6 新兴研究方向中的色彩空间应用探索
在当前计算机视觉的前沿研究中,色彩空间的选择和创新应用正成为提升算法性能的关键因素。例如,在基于深度学习的语义分割任务中,研究人员尝试将不同色彩空间作为网络输入,探索其对分割精度的影响。RGB 色彩空间虽然是图像数据的常见输入形式,但由于其感知不均匀性,可能导致神经网络在学习颜色特征时出现偏差。一些研究通过将 RGB 图像转换为 Lab 色彩空间后输入网络,利用 Lab 空间的感知均匀性,使网络能够更准确地学习到颜色与语义类别的对应关系,从而提升语义分割的精度。实验表明,在某些复杂场景的数据集上,基于 Lab 色彩空间输入的语义分割模型相较于直接使用 RGB 输入,平均交并比(mIoU)指标有显著提升,能够更精确地分割出不同物体和场景类别。
在图像生成领域,如生成对抗网络(GANs)生成逼真图像的过程中,色彩空间的合理运用也至关重要。传统的 GANs 在生成图像时,往往在颜色的准确性和自然度方面存在不足。近期研究发现,通过在生成器和判别器中引入 HSV 色彩空间的约束,可以引导生成图像在色调、饱和度和明度上更符合真实世界的视觉感知。例如,在生成风景图像时,通过控制生成图像在 HSV 空间的色调分布,确保天空的蓝色、草地的绿色等主要色调的准确性,同时调整饱和度和明度,使生成图像更加生动自然,有效提升了生成图像的视觉质量和真实感。
5.7 跨领域应用中的色彩空间融合与拓展
色彩空间在计算机视觉与其他领域的交叉应用中也展现出独特价值。在文物数字化保护领域,需要将高分辨率图像采集与计算机视觉分析相结合,以实现文物的精准建模和修复。RGB 色彩空间用于记录文物表面的原始颜色信息,但在处理褪色、老化的文物图像时,仅依靠 RGB 可能无法准确还原文物的真实色彩。此时,结合 Lab 色彩空间进行分析,通过对比不同时期拍摄的文物图像在 Lab 空间中的颜色变化,可以更准确地评估文物的褪色程度和老化区域,为文物修复提供科学依据。同时,利用 HSV 色彩空间对文物图像进行增强处理,突出文物表面的纹理和图案特征,有助于更清晰地识别文物上的细节信息,提高文物数字化保护的质量和效率。
在农业精准种植领域,计算机视觉技术用于监测农作物的生长状况。通过无人机采集农田图像,在 RGB 色彩空间下可以初步识别农作物的种类和分布范围。然而,为了更精确地监测农作物的健康状况,如检测病虫害、营养缺乏等问题,需要深入分析农作物的颜色变化特征。HSV 色彩空间可以通过分析农作物叶片颜色的色调和饱和度变化,快速发现因病虫害或营养不良导致的颜色异常区域。而 Lab 色彩空间则能够对农作物颜色进行更细致的量化分析,建立与农作物生长指标相关的颜色模型,为精准施肥、灌溉等农业生产决策提供数据支持,实现农业生产的智能化和精细化管理。
六、未来发展趋势与展望
随着计算机视觉技术与人工智能、大数据等前沿技术的深度融合,色彩空间的研究和应用将迎来新的发展机遇和挑战。一方面,新的色彩空间模型可能会不断涌现,以满足日益复杂的计算机视觉任务需求。这些模型可能会结合人类视觉感知机理、深度学习的特征提取能力以及对不同场景下颜色变化规律的深入理解,实现更高效、准确的颜色表示和处理。例如,开发基于感知哈希算法的新型色彩空间,能够在保证颜色感知相似性的同时,实现更快速的颜色匹配和检索,为大规模图像数据库的管理和分析提供支持。
另一方面,多种色彩空间的协同应用将成为未来发展的重要趋势。通过在不同任务阶段灵活切换和融合 RGB、HSV、Lab 等色彩空间,充分发挥各自的优势,能够构建更加智能、鲁棒的计算机视觉系统。例如,在自动驾驶系统中,在图像预处理阶段利用 HSV 色彩空间快速过滤出道路、车辆等关键目标的颜色区域,然后在目标识别和定位阶段采用 Lab 色彩空间进行精确的颜色特征分析,结合深度学习算法实现对交通标志、行人、车辆等目标的准确识别和跟踪,提高自动驾驶系统在复杂环境下的安全性和可靠性。
此外,随着物联网(IoT)设备的广泛普及,大量的图像数据将在边缘设备上进行处理。因此,研究适用于边缘计算环境的轻量级色彩空间转换和处理算法也将成为未来的研究热点之一。这些算法需要在保证一定精度的前提下,降低计算复杂度和能耗,以满足物联网设备资源有限的特点。例如,开发基于硬件加速的 RGB - HSV 或 RGB - Lab 快速转换算法,利用专用的图像信号处理器(ISP)或现场可编程门阵列(FPGA)实现高效的色彩空间转换,为智能安防摄像头、智能家居视觉传感器等物联网设备提供强大的图像处理能力。
综上所述,RGB、HSV 和 Lab 色彩空间作为计算机视觉领域的基础工具,在不断演进和拓展应用的过程中,将持续推动计算机视觉技术在各个领域的创新发展,为解决实际问题提供更有效的技术手段和方法支持。
致读者一封信
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


💞 关注博主 带你实现畅游前后端
🏰 大屏可视化 带你体验酷炫大屏
💯 神秘个人简介 带你体验不一样得介绍
🎀 酷炫邀请函 带你体验高大上得邀请
① 🉑提供云服务部署;
② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
③ 🉑提供产品测评,产品推广业务;
如🈶合作请联系我,期待您的联系。
注:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有) ,https://xcleigh.blog.csdn.net/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。
亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌
原文地址:https://xcleigh.blog.csdn.net/article/details/147002225(防止抄袭,原文地址不可删除)
相关文章:
计算机视觉色彩空间全解析:RGB、HSV与Lab的实战对比
计算机视觉色彩空间全解析:RGB、HSV与Lab的实战对比 一、前言二、RGB 色彩空间2.1 RGB 色彩空间原理2.1.1 基本概念2.1.2 颜色混合机制 2.2 RGB 在计算机视觉中的应用2.2.1 图像读取与显示2.2.2 颜色识别2.2.3 RGB 色彩空间的局限性 三、HSV 色彩空…...
使用Docker安装Gogs
1、拉取镜像 docker pull gogs/gogs 2、运行容器 # 创建/var/gogs目录 mkdir -p /var/gogs# 运行容器 # -d,后台运行 # -p,端口映射:(宿主机端口:容器端口)->(10022:22)和(10880:3000) # -v,数据卷映射:(宿主机目…...
【Web API系列】XMLHttpRequest API和Fetch API深入理解与应用指南
前言 在现代Web开发中,客户端与服务器之间的异步通信是构建动态应用的核心能力。无论是传统的AJAX技术(基于XMLHttpRequest)还是现代的Fetch API,它们都为实现这一目标提供了关键支持。本文将从底层原理、核心功能、代码实践到实…...
Spring Boot 自定义 Redis Starter 开发指南(附动态 TTL 实现)
一、功能概述 本 Starter 基于 Spring Boot 2.7 实现以下核心能力: Redis 增强:标准化 RedisTemplate 配置(JSON 序列化 LocalDateTime 支持)缓存扩展:支持 Cacheable(value “key#60s”) 语法动态设置 TTL配置集中…...
ESP32开发入门:基于VSCode+PlatformIO环境搭建指南
前言 ESP32作为一款功能强大的物联网开发芯片,结合PlatformIO这一现代化嵌入式开发平台,可以大幅提升开发效率。本文将详细介绍如何在VSCode中搭建ESP32开发环境,并分享实用开发技巧。 一、环境安装(Windows/macOS/Linux…...
2025.4.13机器学习笔记:文献阅读
2025.4.13周报 题目信息摘要创新点网络架构实验结论不足以及展望 题目信息 题目: Physics-informed neural networks for inversion of river flow and geometry with shallow water model期刊: Physics of Fluids作者: Y. Ohara; D. Moteki…...
Quartz修仙指南:从定时任务萌新到调度大能的终极奥义
各位被Thread.sleep()和ScheduledExecutorService折磨的道友们!今天要解锁的是Java界任务调度至尊法宝——Quartz!这货能让你像玉皇大帝安排天庭日程一样,精确控制每个任务的执行时机!准备好告别蹩脚的手动定时器了吗?…...
如何免费使用Meta Llama 4?
周六, Meta发布了全新开源的Llama 4系列模型。 架构介绍查看上篇文章。 作为开源模型,Llama 4存在一个重大限制——庞大的体积。该系列最小的Llama 4 Scout模型就拥有1090亿参数,如此庞大的规模根本无法在本地系统运行。 不过别担心!即使你没有GPU,我们也找到了通过网页…...
编程助手fitten code使用说明(超详细)(vscode)
这两年 AI 发展迅猛,作为开发人员,我们总是追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。 AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方,无论是快速修复错误、提升代…...
Python自动化爬虫:Scrapy+APScheduler定时任务
在数据采集领域,定时爬取网页数据是一项常见需求。例如,新闻网站每日更新、电商价格监控、社交媒体舆情分析等场景,都需要定时执行爬虫任务。Python的Scrapy框架是强大的爬虫工具,而APScheduler则提供了灵活的任务调度功能。 一、…...
技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案
iTOP-3588开发板采用瑞芯微RK3588处理器,是全新一代AloT高端应用芯片,采用8nmLP制程,搭载八核64位CPU,四核Cortex-A76和四核Cortex-A55架构,主频高达2.4GHz。是一款可用于互联网设备和其它数字多媒体的高性能产品。 在…...
Java中的参数是值传递还是引用传递?
在java中, 参数传递只有值传递 ,不论是基本类型还是引用类型。 其中的区别在于: 基本数据类型(如byte,short,int等):传递的参数是值的副本,即基本类型的数值本身。因此在方法中&am…...
3.3.1 spdlog异步日志
文章目录 3.3.1 spdlog异步日志1. spdlog1. 日志作用2 .同步日志和异步日志区别 2. spdlog是什么下载命令:2. spdlog为什么高效3. spdlog特征5. spdlog输出控制6. 处理流程7. 文件io8.问题 2. 如何创建logger3. 如何创建sink4. 如何自定义格式化5. 如何创建异步日志…...
SSRF漏洞公开报告分析
文章目录 1. SSRF | 获取元数据 | 账户接管2. AppStore | 版本上传表单 | Blind SSRF3. HOST SSRF一、为什么HOST修改不会影响正常访问二、案例 4. Turbonomic 的 终端节点 | SSRF 获取元密钥一、介绍二、漏洞分析 5. POST | Blind SSRF6. CVE-2024-40898利用 | SSRF 泄露 NTL…...
生物化学笔记:医学免疫学原理14 感染免疫 感染免疫的机制+病原体的免疫逃逸机制
感染免疫的基本概念 感染免疫的机制 病原体的免疫逃逸机制...
RocketMQ深度百科全书式解析
一、核心架构与设计哲学 1. 设计目标 海量消息堆积:单机支持百万级消息堆积,适合大数据场景(如日志采集)。严格顺序性:通过队列分区(Queue)和消费锁机制保证局部顺序。事务…...
谈谈模板方法模式,模板方法模式的应用场景是什么?
一、模式核心理解 模板方法模式是一种行为设计模式,通过定义算法骨架并允许子类重写特定步骤来实现代码复用。 如同建筑图纸规定房屋结构,具体装修由业主决定,该模式适用于固定流程中需要灵活扩展的场景。 // 基础请求处理…...
电脑的usb端口电压会大于开发板需要的电压吗
电脑的USB端口电压通常不会大于开发板所需的电压,以下是详细解释: 1. USB端口电压标准 根据USB规范,USB接口的标称输出电压为5V。实际测量时,USB接口的输出电压会略有偏差,通常在4.75V到5.25V之间。USB 2.0和USB 3.0…...
DeepSeek-V3与DeepSeek-R1全面解析:从架构原理到实战应用
DeepSeek-V3与DeepSeek-R1全面解析:从架构原理到实战应用 DeepSeek作为中国人工智能领域的新锐力量,其推出的DeepSeek-V3和DeepSeek-R1系列模型在开源社区和商业应用中引起了广泛关注。本指南将系统介绍这两款模型的架构特点、安装部署方法以及实际应用…...
Java 基础(4)—Java 对象布局及偏向锁、轻量锁、重量锁介绍
一、Java 对象内存布局 1、对象内存布局 一个对象在 Java 底层布局(右半部分是数组连续的地址空间),如下图示: 总共有三部分总成: 1. 对象头:储对象的元数据,如哈希码、GC 分代年龄、锁状态…...
Flink回撤流详解 代码实例
一、概念介绍 1. 回撤流的定义 在 Flink 中,回撤流主要出现在使用 Table API 或 SQL 进行聚合或更新操作时。对于那些结果并非单纯追加(append-only)的查询,Flink 会采用“回撤流”模式来表达更新。 回撤流的数据格式ÿ…...
Glowroot 是一个开源的 Java 应用性能监控(APM)工具,专为 低开销、易用性 设计,具体的应用及优势进行分析说明
Glowroot 是一个开源的 Java 应用性能监控(APM)工具,专为 低开销、易用性 设计,适用于开发和生产环境。它可以帮助你实时监控 Java 应用的性能指标(如响应时间、SQL 查询、JVM 状态等),无需复杂配置即可快速定位性能瓶颈。 1. 核心功能 功能说明请求性能分析记录 HTTP 请…...
台式电脑插入耳机没有声音或麦克风不管用
目录 一、如何确定插孔对应功能1.常见音频插孔颜色及功能2.如何确认电脑插孔?3.常见问题二、 解决方案1. 检查耳机连接和设备选择2. 检查音量设置和静音状态3. 更新或重新安装声卡驱动4. 检查默认音频格式5. 禁用音频增强功能6. 排查硬件问题7. 检查系统服务8. BIOS设置(可选…...
直播电商革命:东南亚市场的“人货场”重构方程式
一、人设经济3.0:从流量收割到情感基建 东南亚直播战场正经历从"叫卖式促销"到"沉浸式信任"的质变,新加坡市场成为最佳观察样本: 数据印证趋势:Shopee直播用户日均停留28分钟,超短视频平台&#…...
AI图像生成
要通过代码实现AI图像生成,可以使用深度学习框架如TensorFlow、PyTorch或GANs等技术。下面是一个简单的示例代码,演示如何使用GANs生成手写数字图像: import torch import torchvision import torchvision.transforms as transforms import …...
Spring Boot 通过全局配置去除字符串类型参数的前后空格
1、问题 避免前端输入的字符串参数两端包含空格,通过统一处理的方式,trim掉空格 2、实现方式 /*** 去除字符串类型参数的前后空格* author yanlei* since 2022-06-14*/ Configuration AutoConfigureAfter(WebMvcAutoConfiguration.class) public clas…...
【AI论文】OLMoTrace:将语言模型输出追溯到万亿个训练标记
摘要:我们提出了OLMoTrace,这是第一个将语言模型的输出实时追溯到其完整的、数万亿标记的训练数据的系统。 OLMoTrace在语言模型输出段和训练文本语料库中的文档之间找到并显示逐字匹配。 我们的系统由扩展版本的infini-gram(Liu等人…...
git仓库迁移包括提交记录日志
网上找了很多资料都不好用,直到看到一个亲测有效后,整理如下: 1、进入仓库目录下,并且切换到要迁移的分支上 前提是你本地已有旧仓库的代码;如果没有的话,先拉取。 2、更改仓库地址 git remote set-url …...
SAP GUI 显示SAP UI5应用,并实现SSO统一登陆
想用SAP UI5 做一写界面,又不想给用户用标准的Fiori APP怎么办?我觉得可以用可配置物料标准功能的思路,在SAP GUI中显示UI5界面,而不是跳转到浏览器。 代码实现后的效果如下: 1、调用UI5应用,适用于自开发…...
HumanDil-Ox-LDL:保存:2-8℃保存,避免强光直射,不可冻存
化学试剂的基本介绍: /// 英文名称:HumanDil-Oxidized LowDensityLipoprotein /// 中文名称:人源红色荧光标记氧化型低密度脂蛋白 /// 浓度:1.0-4.0 mg/ml /// 外观:乳状液体 /// 缓冲液组分:PBS&…...
