-------------OpenCV教程集合-------------
Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库)
OpenCV教程01:图像的操作(读取+显示+保存+属性+获取和修改像素值)
OpenCV教程02:图像处理系统1.0(翻转+形态学+滤波+缩放+旋转)
OpenCV教程03:绘制图形(线段、矩形、圆形、椭圆、多边形、箭头线)+水印文本
cv2.cvtColor 是 OpenCV 库中用于转换图像颜色空间的一个非常有用的函数。它可以将图像从一个颜色空间转换到另一个颜色空间,比如从 BGR 转换到灰度、HSV、YCrCb 等。在 OpenCV 中,默认加载的图像颜色空间是 BGR(蓝绿红),而不是通常的 RGB(红绿蓝)。因此,在处理图像时,经常需要转换颜色空间。以下是一些基本的使用示例:
示例 1:将图像从 BGR(蓝绿红)颜色空间转换为灰度图像是最常见的用法之一。灰度图像是单通道的,每个像素的亮度值由原始图像的 BGR 值根据一定的权重计算得出。
import cv2
# 读取图像
image = cv2.imread('example.png')
# 使用cv2.COLOR_BGR2GRAY将图像转换为灰度图
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 显示原图和灰度图
cv2.imshow('Original Image', image)
cv2.imshow('Gray Image', gray_image)
# 等待按键后关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
2.BGR 到 RGB 的转换
由于 OpenCV 默认使用 BGR 格式加载图像,而在许多其他图像处理库(如 PIL 或 matplotlib)中,图像是以 RGB 格式处理的。因此,有时需要将 BGR 图像转换为 RGB 图像。
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
注意,这个转换在大多数情况下可能不是必需的,因为许多图像处理任务(如特征检测、边缘检测等)在 BGR 或 RGB 空间中都能很好地工作。但是,当你需要将图像与其他库或框架一起使用时,这个转换就变得非常重要了。
示例 3:从BGR转换到HSV,常用于颜色分割和阈值处理。HSV(色调、饱和度、亮度)是一种更直观的颜色空间,它对于某些图像处理任务(如颜色分割、颜色追踪等)来说非常有用。将图像从 BGR 转换到 HSV 可以让你更容易地根据色调、饱和度和亮度来分析和处理图像。
import cv2
# 读取图像
image = cv2.imread('input.jpg')
# 转换到HSV颜色空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2.imshow('hsv_image', hsv_image)
# 显示HSV图像(注意,显示时可能需要调整通道顺序)
hsv_split = cv2.split(hsv_image)
cv2.imshow('Hue Channel', hsv_split[0])
cv2.imshow('Saturation Channel', hsv_split[1])
cv2.imshow('Value Channel', hsv_split[2])
cv2.waitKey(0)
cv2.destroyAllWindows()
示例4:从BGR转换到YCrCb
YCrCb颜色空间常用于肤色检测等应用。
import cv2
# 读取图像
image = cv2.imread('example.png')
# 转换到YCrCb颜色空间
ycrcb_image = cv2.cvtColor(image, cv2.COLOR_BGR2YCrCb)
# 显示YCrCb图像
cv2.imshow('YCrCb Image', ycrcb_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
完毕!!感谢您的收看
----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame