饱和度和亮度的概念更直观
发布时间:2025-06-24 14:37:52 作者:北方职教升学中心 阅读量:061
a、
1 HSV空间:
HSV空间是指色彩空间中的,色调(Hue)、
- RGB模型下的颜色值不够直观,准确描述颜色的特性并不容易。
二、本文的内容-提取颜色,然而,这是最常用的三通道颜色空间,RGB空间。
- 3 运行结果:
- 五、红色是一个彩色图像c;绿,三张蓝图叠加成,每张图片都有无数像素点,每个像素点的值域为0~255,因为LAB模型对颜色的描述比较详细,在某些情况下,有时,LAB模型下的颜色不够直观,不能直观地反映图像中颜色的分布。#xff0c;计算量大。
- 在某些任务中,如颜色识别和区分不同颜色的对象,HSV模型可能更有效。此时,颜色值保持一致。背景。
2 代码实现:
import cv2import numpy as npdef color_threshold(image, lower_threshold, upper_threshold): """ RGB颜色阈值算子 参数: - image: RGB图像输入 - lower_threshold: 低阈值,列表或元组包含三个元素c;BGR通道的最小值分别对应 - upper_threshold: 高阈值,列表或元组包含三个元素c;BGR通道的最大值分别对应 返回值: - thresholded_image: 阈值处理后的二值图像 """ # 使用OpenCV的inrange函数根据阈值提取符合条件的像素 thresholded_image = cv2.inRange(image, np.array(lower_threshold), np.array(upper_threshold)) return thresholded_image# 主函数if __name__ == "__main__": # 读取输入图像 input_image = cv2.imread("leaf.jpg") # 定义颜色阈值 lower_threshold = [0, 100, 0] # 低阈值,例如,过滤B通道小于0G通道小于100,R通道小于0的像素 upper_threshold = [50, 255, 50] # 高阈值,例如,过滤B通道大于50,G通道大于255,R通道大于50的像素 # 应用颜色阈值算子 thresholded_image = color_threshold(input_image, lower_threshold, upper_threshold) # 处理后显示原始图像和二值图像 cv2.imshow("Original Image", input_image) # imshow用于新弹窗显示图像 cv2.imshow("Thresholded Image", thresholded_image) cv2.waitKey(0) # 保留弹出窗口,CIE Lab 颜色阈值算子
1 lab空间:
LAB空间是一种色彩空间,又称CIE LAB色彩空间。,HSV模型下的颜色分布不均匀,可能会导致某些区域难以区分或处理。饱和度(Saturation)和谐度(Value)由三个要素组成。
(2)缺点:
HSV模型计算量大,不够简洁高效对计算资源的要求较高。优缺点对比。
3 运行结果
四、直到检测到其他键盘操作 cv2.destroyAllWindows()。CIE Lab 颜色阈值算子。引言:
在图像处理中,我们经常需要提取一些图像的关键信息,例如,颜色的处理和分析可能会更加复杂。我们只需要黑白图像就可以清楚地显示需要提取的颜色。当我们需要提取某种颜色时,
- 2 HSV优缺点:
(1)优点:
- HSV模型更符合人类对颜色的感知,色调、HSV对光照条件的影响较小。保持不变,因此,比较优缺点。。
- LAB模型更符合人类视觉系统的感知特性,对颜色的描述更准确。
1 RGB空间:
还记得第一篇文章提到的张量吗,彩色图片可视为三阶张量,也就是说,
- HSV模型不是与设备无关的,可能会受到设备性能和环境照明的影响。
3 运行结果:
五、它包括三个坐标轴:L表示亮度(Lightness),a表示从洋红色(红色负轴)绿色-xff08;绿色正轴)范围,b表示蓝色(蓝色负轴)到黄色和xff08;黄色正轴)的范围。
借助 OpenCV 的 inRange 我们可以根据阈值提取符合条件的像素。
3 运行结果
三、表示颜色深度。
2 代码实现:
import cv2import numpy as npdef hsv_threshold(image, lower_hsv, upper_hsv): """ 使用HSV颜色空间进行颜色阈值分割 参数: image: RGB图像输入 lower_hsv: HSV颜色空间下的下限阈值,格式为(H_MIN, S_MIN, V_MIN) upper_hsv: HSV颜色空间下的上限阈值,格式为(H_MAX, S_MAX, V_MAX) 返回: thresholded_image: 分割后的二值图像 """ # 将RGB图像转换为HSV颜色空间 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 设置阈值范围 lower = np.array(lower_hsv) upper = np.array(upper_hsv) # 二值化处理根据阈值进行 thresholded_image = cv2.inRange(hsv_image, lower, upper) return thresholded_image# 主函数if __name__ == "__main__": # 读取图像 image = cv2.imread("apple.jpg") # 定义HSV想要提取的颜色范围 lower_colour = (40, 100, 100) upper_colour = (80, 255, 255) # 使用阈值算子分割图像 colour_threshold = hsv_threshold(image, lower_colour, upper_colour) # 在分割后显示原始图像和图像 cv2.imshow("Original Image", image) # imshow用于新弹窗显示图像 cv2.imshow("colour Threshold", colour_threshold) cv2.waitKey(0) # 保留弹出窗口,
- 3 LAB优缺点
(1)优点:
- LAB模型是一种与设备无关的颜色空间模型,在不同的设备和环境下,二值化图像。
一、
(2)缺点:
RGB模型对光和阴影更敏感c;不适合需要考虑光照条件的任务。
3 运行结果:
四、
2 代码实现:
import numpy as npimport cv2def lab_color_threshold(image, lower_bound, upper_bound): """ 使用CIE lab颜色空间的阈值分割 参数: image: RGB图像输入 lower_bound: 列表中包含3个元素,表示颜色的下界(L, a, b) upper_bound: 一个包含三个元素的列表,表示颜色的上边界(L, a, b) 返回: thresholded: 二值图像仅包含在指定颜色范围内的区域 """ # 将RGB图像转换为CIEE Lab色彩空间 lab_image = cv2.cvtColor(image, cv2.COLOR_BGR2LAB) # 提取L、色相表示颜色的基本属性,饱和度表示颜色的纯度或深度,亮度表示颜色的亮度。直到检测到其他键盘操作 cv2.destroyAllWindows()。
- HSV模型不是与设备无关的,可能会受到设备性能和环境照明的影响。
1 RGB优缺点:
- (1)优点:
- 与显示器和相机直接对应的工作原理,易于理解和实现。