OpenCV 例程200篇 总目录
201. 图像的颜色空间转换
202. 查表快速替换(cv.LUT)
203. 伪彩色图像处理
204. 图像的色彩风格滤镜
205. 调节色彩平衡/饱和度/明度

文章目录

  • 【youcans 的 OpenCV 例程200篇】201. 图像的颜色空间转换
    • 图像的色彩空间基础
    • 图像的颜色空间转换公式
    • 图像的颜色空间转换
    • 例程 14.1:OpenCV 颜色空间转换类型
    • 例程 14.2:颜色空间转换

【youcans 的 OpenCV 例程200篇】201. 图像的颜色空间转换

图像的色彩空间基础

色彩空间是指通过多个(通常为 3个或4个)颜色分量构成坐标系来表示各种颜色的模型系统。色彩空间中的每个像素点均代表一种颜色,各像素点的颜色是多个颜色分量的合成或描述。

彩色图像可以根据需要映射到某个色彩空间进行描述。在不同的工业环境或机器视觉应用中,使用的色彩空间各不相同。

常见的色彩空间包括:GRAY 色彩空间(灰度图像)、XYZ 色彩空间、YCrCb 色彩空间、HSV 色彩空间、HLS 色彩空间、CIELab 色彩空间、CIELuv 色彩空间、Bayer 色彩空间等。

计算机显示器采用 RGB 色彩空间,数字艺术创作经常采用 HSV/HSB 色彩空间,机器视觉和图像处理系统大量使用 HSl、HSL色彩空间。各颜色分量的含义分别为:

  • RGB:红色(Red)、绿色(Green)、蓝色(Blue);
  • HSV/HSB:色调(Hue)、饱和度(Saturation)和明度(Value/Brightness);
  • HSl:色调(Hue)、饱和度(Saturation)和灰度(Intensity);
  • HSL:包括色调(Hue)、饱和度(Saturation)和亮度(Luminance/Lightness)。

RGB 模型是一种加性色彩系统,色彩源于红、绿、蓝三基色。用于CRT显示器、数字扫描仪、数字摄像机和显示设备上,是当前应用最广泛的一种彩色模型。

图像的颜色空间转换公式

  1. RGB ⟷\longleftrightarrow⟷ GRAY
    GRAY 表示灰度图像,通常指 cv_8U 灰度图,有256个灰度级:0-255。
    RGB → GRAY:gray=0.299∗R+0.587∗G+0.114∗Bgray = 0.299*R + 0.587*G + 0.114*Bgray=0.299∗R+0.587∗G+0.114∗B

  2. RGB ⟷\longleftrightarrow⟷ HSV

V←max⁡(R,G,B)S←{[V−min(R,G,B)]/V,V≠00,V=0H←{60(G−B)/[V−min(R,G,B)],V=R120+60(B−R)/[V−min(R,G,B)],V=G240+60(R−G)/[V−min(R,G,B)],V=B0,R=G=B\begin{aligned} V & \leftarrow \max{(R,G,B)} \\ S & \leftarrow \begin{cases} [{V-min{(R,G,B)}}]/V, &V \neq 0\\ 0, &V=0 \end{cases}\\ H &\leftarrow \begin{cases} 60(G-B)/[{V-min{(R,G,B)}}], &V =R\\ 120+60(B-R)/[{V-min{(R,G,B)}}], &V =G\\ 240+60(R-G)/[{V-min{(R,G,B)}}], &V =B\\ 0, & R=G=B \end{cases} \end{aligned} VSH​←max(R,G,B)←{[V−min(R,G,B)]/V,0,​V​=0V=0​←⎩⎪⎪⎪⎨⎪⎪⎪⎧​60(G−B)/[V−min(R,G,B)],120+60(B−R)/[V−min(R,G,B)],240+60(R−G)/[V−min(R,G,B)],0,​V=RV=GV=BR=G=B​​

更多颜色空间转换公式,详见 OpenCV官方文档: OpenCV: Color conversions 。

图像的颜色空间转换

色彩空间类型转换,是指将图像从一个色彩空间转换到另一个色彩空间。例如,在进行图像的特征提取、距离计算时,往往先将图像从 RGB 色彩空间转换为灰度色彩空间。

函数 cv.cvtColor() 将图像从一个颜色空间转换为另一个颜色空间。

cv.cvtColor(src, code [, dst, dstCn]]) → dst

参数说明:

  • src:输入图像,nparray 多维数组,8位无符号/ 16位无符号/单精度浮点数格式
  • code:颜色空间转换代码,详见 ColorConversionCodes
  • dst:输出图像,大小和深度与 src 相同
  • dstCn:输出图像的通道数,0 表示由src和code自动计算。

注意事项:

  1. 如果使用 RGB 表示方法,要明确指定各通道的顺序为 RGB 或 BGR。
    OpenCV,PyQt5 和 Matplotlib 中都使用 RGB 模型表示彩色图像,数据格式为 Numpy 多维数组。
    但 OpenCV 中是 BGR 顺序,按照蓝/绿/红的次序排列;而 PyQt5、Matplotlib 中是 RGB 格式, 按照红/绿/蓝的次序排序。
    因此使用 plt.imshow() 显示 OpenCV 彩色图像时,先要进行颜色空间转换,使 Numpy 多维数组按照 RGB 格式排序。
    PyQt5 也使用 RGB 格式,在 PyQt5 中显示 OpenCV 彩色图像也要先转换为 RGB 格式。
  2. 灰度图像是单通道,在 OpenCV 和 Matplotlib 中都是 Numpy 二维数组。
  3. 彩色图像中各通道的像素值范围,及灰度图像的像素值范围,由图像像素的位深度 depth决定。
    CV_8U 是8位无符号格式,取值范围 0-255,这是大多数图像和视频格式的正常范围;CV_16U 是16位无符号格式,取值范围 0-65535;CV_32F 是单精度浮点数格式,取值范围0.0-1.0。
  4. 图像格式转换通常是线性变换,像素的位深度不影响变换结果;但在进行非线性计算或变换时,需要把 RGB 输入图像归一化到适当的取值范围,才能得到正确的结果。
  5. 如果使用 8位无符号格式 CV_8U,由于数据精度较低可能丢失部分信息,使用 16位或 32位数据格式可以解决这个问题。
  6. 如果转换后添加 alpha 通道,alpha 通道的取值为相应通道范围的最大值,CV_8U 图像为 255,CV_16U 图像为 65535,CV_32F 图像为 1.0。
  7. 该函数将图像由 GRAY 转换为 RGB 时,转换规则为:R=G=B=gray 。

例程 14.1:OpenCV 颜色空间转换类型

    # 14.1 OpenCV 颜色空间转换类型flags = [i for i in dir(cv) if i.startswith('COLOR_')]print(flags)

函数 cv.cvtColor 提供了 150 多种颜色空间转换类型,本例程可以查询 OpenCV 所支持的颜色转换类型。

运行结果:

[‘COLOR_BAYER_BG2BGR’, ‘COLOR_BAYER_BG2BGRA’, ‘COLOR_BAYER_BG2BGR_EA’, ‘COLOR_BAYER_BG2BGR_VNG’, ‘COLOR_BAYER_BG2GRAY’, ‘COLOR_BAYER_BG2RGB’, ‘COLOR_BAYER_BG2RGBA’, ‘COLOR_BAYER_BG2RGB_EA’, ‘COLOR_BAYER_BG2RGB_VNG’, ‘COLOR_BAYER_BGGR2BGR’, ‘COLOR_BAYER_BGGR2BGRA’, ‘COLOR_BAYER_BGGR2BGR_EA’, ‘COLOR_BAYER_BGGR2BGR_VNG’, ‘COLOR_BAYER_BGGR2GRAY’, ‘COLOR_BAYER_BGGR2RGB’, ‘COLOR_BAYER_BGGR2RGBA’, ‘COLOR_BAYER_BGGR2RGB_EA’, ‘COLOR_BAYER_BGGR2RGB_VNG’, ‘COLOR_BAYER_GB2BGR’, ‘COLOR_BAYER_GB2BGRA’, ‘COLOR_BAYER_GB2BGR_EA’, ‘COLOR_BAYER_GB2BGR_VNG’, ‘COLOR_BAYER_GB2GRAY’, ‘COLOR_BAYER_GB2RGB’, ‘COLOR_BAYER_GB2RGBA’, ‘COLOR_BAYER_GB2RGB_EA’, ‘COLOR_BAYER_GB2RGB_VNG’, ‘COLOR_BAYER_GBRG2BGR’, ‘COLOR_BAYER_GBRG2BGRA’, ‘COLOR_BAYER_GBRG2BGR_EA’, ‘COLOR_BAYER_GBRG2BGR_VNG’, ‘COLOR_BAYER_GBRG2GRAY’, ‘COLOR_BAYER_GBRG2RGB’, ‘COLOR_BAYER_GBRG2RGBA’, ‘COLOR_BAYER_GBRG2RGB_EA’, ‘COLOR_BAYER_GBRG2RGB_VNG’, ‘COLOR_BAYER_GR2BGR’, ‘COLOR_BAYER_GR2BGRA’, ‘COLOR_BAYER_GR2BGR_EA’, ‘COLOR_BAYER_GR2BGR_VNG’, ‘COLOR_BAYER_GR2GRAY’, ‘COLOR_BAYER_GR2RGB’, ‘COLOR_BAYER_GR2RGBA’, ‘COLOR_BAYER_GR2RGB_EA’, ‘COLOR_BAYER_GR2RGB_VNG’, ‘COLOR_BAYER_GRBG2BGR’, ‘COLOR_BAYER_GRBG2BGRA’, ‘COLOR_BAYER_GRBG2BGR_EA’, ‘COLOR_BAYER_GRBG2BGR_VNG’, ‘COLOR_BAYER_GRBG2GRAY’, ‘COLOR_BAYER_GRBG2RGB’, ‘COLOR_BAYER_GRBG2RGBA’, ‘COLOR_BAYER_GRBG2RGB_EA’, ‘COLOR_BAYER_GRBG2RGB_VNG’, ‘COLOR_BAYER_RG2BGR’, ‘COLOR_BAYER_RG2BGRA’, ‘COLOR_BAYER_RG2BGR_EA’, ‘COLOR_BAYER_RG2BGR_VNG’, ‘COLOR_BAYER_RG2GRAY’, ‘COLOR_BAYER_RG2RGB’, ‘COLOR_BAYER_RG2RGBA’, ‘COLOR_BAYER_RG2RGB_EA’, ‘COLOR_BAYER_RG2RGB_VNG’, ‘COLOR_BAYER_RGGB2BGR’, ‘COLOR_BAYER_RGGB2BGRA’, ‘COLOR_BAYER_RGGB2BGR_EA’, ‘COLOR_BAYER_RGGB2BGR_VNG’, ‘COLOR_BAYER_RGGB2GRAY’, ‘COLOR_BAYER_RGGB2RGB’, ‘COLOR_BAYER_RGGB2RGBA’, ‘COLOR_BAYER_RGGB2RGB_EA’, ‘COLOR_BAYER_RGGB2RGB_VNG’, ‘COLOR_BGR2BGR555’, ‘COLOR_BGR2BGR565’, ‘COLOR_BGR2BGRA’, ‘COLOR_BGR2GRAY’, ‘COLOR_BGR2HLS’, ‘COLOR_BGR2HLS_FULL’, ‘COLOR_BGR2HSV’, ‘COLOR_BGR2HSV_FULL’, ‘COLOR_BGR2LAB’, ‘COLOR_BGR2LUV’, ‘COLOR_BGR2Lab’, ‘COLOR_BGR2Luv’, ‘COLOR_BGR2RGB’, ‘COLOR_BGR2RGBA’, ‘COLOR_BGR2XYZ’, ‘COLOR_BGR2YCR_CB’, ‘COLOR_BGR2YCrCb’, ‘COLOR_BGR2YUV’, ‘COLOR_BGR2YUV_I420’, ‘COLOR_BGR2YUV_IYUV’, ‘COLOR_BGR2YUV_YV12’, ‘COLOR_BGR5552BGR’, ‘COLOR_BGR5552BGRA’, ‘COLOR_BGR5552GRAY’, ‘COLOR_BGR5552RGB’, ‘COLOR_BGR5552RGBA’, ‘COLOR_BGR5652BGR’, ‘COLOR_BGR5652BGRA’, ‘COLOR_BGR5652GRAY’, ‘COLOR_BGR5652RGB’, ‘COLOR_BGR5652RGBA’, ‘COLOR_BGRA2BGR’, ‘COLOR_BGRA2BGR555’, ‘COLOR_BGRA2BGR565’, ‘COLOR_BGRA2GRAY’, ‘COLOR_BGRA2RGB’, ‘COLOR_BGRA2RGBA’, ‘COLOR_BGRA2YUV_I420’, ‘COLOR_BGRA2YUV_IYUV’, ‘COLOR_BGRA2YUV_YV12’, ‘COLOR_BayerBG2BGR’, ‘COLOR_BayerBG2BGRA’, ‘COLOR_BayerBG2BGR_EA’, ‘COLOR_BayerBG2BGR_VNG’, ‘COLOR_BayerBG2GRAY’, ‘COLOR_BayerBG2RGB’, ‘COLOR_BayerBG2RGBA’, ‘COLOR_BayerBG2RGB_EA’, ‘COLOR_BayerBG2RGB_VNG’, ‘COLOR_BayerBGGR2BGR’, ‘COLOR_BayerBGGR2BGRA’, ‘COLOR_BayerBGGR2BGR_EA’, ‘COLOR_BayerBGGR2BGR_VNG’, ‘COLOR_BayerBGGR2GRAY’, ‘COLOR_BayerBGGR2RGB’, ‘COLOR_BayerBGGR2RGBA’, ‘COLOR_BayerBGGR2RGB_EA’, ‘COLOR_BayerBGGR2RGB_VNG’, ‘COLOR_BayerGB2BGR’, ‘COLOR_BayerGB2BGRA’, ‘COLOR_BayerGB2BGR_EA’, ‘COLOR_BayerGB2BGR_VNG’, ‘COLOR_BayerGB2GRAY’, ‘COLOR_BayerGB2RGB’, ‘COLOR_BayerGB2RGBA’, ‘COLOR_BayerGB2RGB_EA’, ‘COLOR_BayerGB2RGB_VNG’, ‘COLOR_BayerGBRG2BGR’, ‘COLOR_BayerGBRG2BGRA’, ‘COLOR_BayerGBRG2BGR_EA’, ‘COLOR_BayerGBRG2BGR_VNG’, ‘COLOR_BayerGBRG2GRAY’, ‘COLOR_BayerGBRG2RGB’, ‘COLOR_BayerGBRG2RGBA’, ‘COLOR_BayerGBRG2RGB_EA’, ‘COLOR_BayerGBRG2RGB_VNG’, ‘COLOR_BayerGR2BGR’, ‘COLOR_BayerGR2BGRA’, ‘COLOR_BayerGR2BGR_EA’, ‘COLOR_BayerGR2BGR_VNG’, ‘COLOR_BayerGR2GRAY’, ‘COLOR_BayerGR2RGB’, ‘COLOR_BayerGR2RGBA’, ‘COLOR_BayerGR2RGB_EA’, ‘COLOR_BayerGR2RGB_VNG’, ‘COLOR_BayerGRBG2BGR’, ‘COLOR_BayerGRBG2BGRA’, ‘COLOR_BayerGRBG2BGR_EA’, ‘COLOR_BayerGRBG2BGR_VNG’, ‘COLOR_BayerGRBG2GRAY’, ‘COLOR_BayerGRBG2RGB’, ‘COLOR_BayerGRBG2RGBA’, ‘COLOR_BayerGRBG2RGB_EA’, ‘COLOR_BayerGRBG2RGB_VNG’, ‘COLOR_BayerRG2BGR’, ‘COLOR_BayerRG2BGRA’, ‘COLOR_BayerRG2BGR_EA’, ‘COLOR_BayerRG2BGR_VNG’, ‘COLOR_BayerRG2GRAY’, ‘COLOR_BayerRG2RGB’, ‘COLOR_BayerRG2RGBA’, ‘COLOR_BayerRG2RGB_EA’, ‘COLOR_BayerRG2RGB_VNG’, ‘COLOR_BayerRGGB2BGR’, ‘COLOR_BayerRGGB2BGRA’, ‘COLOR_BayerRGGB2BGR_EA’, ‘COLOR_BayerRGGB2BGR_VNG’, ‘COLOR_BayerRGGB2GRAY’, ‘COLOR_BayerRGGB2RGB’, ‘COLOR_BayerRGGB2RGBA’, ‘COLOR_BayerRGGB2RGB_EA’, ‘COLOR_BayerRGGB2RGB_VNG’, ‘COLOR_COLORCVT_MAX’, ‘COLOR_GRAY2BGR’, ‘COLOR_GRAY2BGR555’, ‘COLOR_GRAY2BGR565’, ‘COLOR_GRAY2BGRA’, ‘COLOR_GRAY2RGB’, ‘COLOR_GRAY2RGBA’, ‘COLOR_HLS2BGR’, ‘COLOR_HLS2BGR_FULL’, ‘COLOR_HLS2RGB’, ‘COLOR_HLS2RGB_FULL’, ‘COLOR_HSV2BGR’, ‘COLOR_HSV2BGR_FULL’, ‘COLOR_HSV2RGB’, ‘COLOR_HSV2RGB_FULL’, ‘COLOR_LAB2BGR’, ‘COLOR_LAB2LBGR’, ‘COLOR_LAB2LRGB’, ‘COLOR_LAB2RGB’, ‘COLOR_LBGR2LAB’, ‘COLOR_LBGR2LUV’, ‘COLOR_LBGR2Lab’, ‘COLOR_LBGR2Luv’, ‘COLOR_LRGB2LAB’, ‘COLOR_LRGB2LUV’, ‘COLOR_LRGB2Lab’, ‘COLOR_LRGB2Luv’, ‘COLOR_LUV2BGR’, ‘COLOR_LUV2LBGR’, ‘COLOR_LUV2LRGB’, ‘COLOR_LUV2RGB’, ‘COLOR_Lab2BGR’, ‘COLOR_Lab2LBGR’, ‘COLOR_Lab2LRGB’, ‘COLOR_Lab2RGB’, ‘COLOR_Luv2BGR’, ‘COLOR_Luv2LBGR’, ‘COLOR_Luv2LRGB’, ‘COLOR_Luv2RGB’, ‘COLOR_M_RGBA2RGBA’, ‘COLOR_RGB2BGR’, ‘COLOR_RGB2BGR555’, ‘COLOR_RGB2BGR565’, ‘COLOR_RGB2BGRA’, ‘COLOR_RGB2GRAY’, ‘COLOR_RGB2HLS’, ‘COLOR_RGB2HLS_FULL’, ‘COLOR_RGB2HSV’, ‘COLOR_RGB2HSV_FULL’, ‘COLOR_RGB2LAB’, ‘COLOR_RGB2LUV’, ‘COLOR_RGB2Lab’, ‘COLOR_RGB2Luv’, ‘COLOR_RGB2RGBA’, ‘COLOR_RGB2XYZ’, ‘COLOR_RGB2YCR_CB’, ‘COLOR_RGB2YCrCb’, ‘COLOR_RGB2YUV’, ‘COLOR_RGB2YUV_I420’, ‘COLOR_RGB2YUV_IYUV’, ‘COLOR_RGB2YUV_YV12’, ‘COLOR_RGBA2BGR’, ‘COLOR_RGBA2BGR555’, ‘COLOR_RGBA2BGR565’, ‘COLOR_RGBA2BGRA’, ‘COLOR_RGBA2GRAY’, ‘COLOR_RGBA2M_RGBA’, ‘COLOR_RGBA2RGB’, ‘COLOR_RGBA2YUV_I420’, ‘COLOR_RGBA2YUV_IYUV’, ‘COLOR_RGBA2YUV_YV12’, ‘COLOR_RGBA2mRGBA’, ‘COLOR_XYZ2BGR’, ‘COLOR_XYZ2RGB’, ‘COLOR_YCR_CB2BGR’, ‘COLOR_YCR_CB2RGB’, ‘COLOR_YCrCb2BGR’, ‘COLOR_YCrCb2RGB’, ‘COLOR_YUV2BGR’, ‘COLOR_YUV2BGRA_I420’, ‘COLOR_YUV2BGRA_IYUV’, ‘COLOR_YUV2BGRA_NV12’, ‘COLOR_YUV2BGRA_NV21’, ‘COLOR_YUV2BGRA_UYNV’, ‘COLOR_YUV2BGRA_UYVY’, ‘COLOR_YUV2BGRA_Y422’, ‘COLOR_YUV2BGRA_YUNV’, ‘COLOR_YUV2BGRA_YUY2’, ‘COLOR_YUV2BGRA_YUYV’, ‘COLOR_YUV2BGRA_YV12’, ‘COLOR_YUV2BGRA_YVYU’, ‘COLOR_YUV2BGR_I420’, ‘COLOR_YUV2BGR_IYUV’, ‘COLOR_YUV2BGR_NV12’, ‘COLOR_YUV2BGR_NV21’, ‘COLOR_YUV2BGR_UYNV’, ‘COLOR_YUV2BGR_UYVY’, ‘COLOR_YUV2BGR_Y422’, ‘COLOR_YUV2BGR_YUNV’, ‘COLOR_YUV2BGR_YUY2’, ‘COLOR_YUV2BGR_YUYV’, ‘COLOR_YUV2BGR_YV12’, ‘COLOR_YUV2BGR_YVYU’, ‘COLOR_YUV2GRAY_420’, ‘COLOR_YUV2GRAY_I420’, ‘COLOR_YUV2GRAY_IYUV’, ‘COLOR_YUV2GRAY_NV12’, ‘COLOR_YUV2GRAY_NV21’, ‘COLOR_YUV2GRAY_UYNV’, ‘COLOR_YUV2GRAY_UYVY’, ‘COLOR_YUV2GRAY_Y422’, ‘COLOR_YUV2GRAY_YUNV’, ‘COLOR_YUV2GRAY_YUY2’, ‘COLOR_YUV2GRAY_YUYV’, ‘COLOR_YUV2GRAY_YV12’, ‘COLOR_YUV2GRAY_YVYU’, ‘COLOR_YUV2RGB’, ‘COLOR_YUV2RGBA_I420’, ‘COLOR_YUV2RGBA_IYUV’, ‘COLOR_YUV2RGBA_NV12’, ‘COLOR_YUV2RGBA_NV21’, ‘COLOR_YUV2RGBA_UYNV’, ‘COLOR_YUV2RGBA_UYVY’, ‘COLOR_YUV2RGBA_Y422’, ‘COLOR_YUV2RGBA_YUNV’, ‘COLOR_YUV2RGBA_YUY2’, ‘COLOR_YUV2RGBA_YUYV’, ‘COLOR_YUV2RGBA_YV12’, ‘COLOR_YUV2RGBA_YVYU’, ‘COLOR_YUV2RGB_I420’, ‘COLOR_YUV2RGB_IYUV’, ‘COLOR_YUV2RGB_NV12’, ‘COLOR_YUV2RGB_NV21’, ‘COLOR_YUV2RGB_UYNV’, ‘COLOR_YUV2RGB_UYVY’, ‘COLOR_YUV2RGB_Y422’, ‘COLOR_YUV2RGB_YUNV’, ‘COLOR_YUV2RGB_YUY2’, ‘COLOR_YUV2RGB_YUYV’, ‘COLOR_YUV2RGB_YV12’, ‘COLOR_YUV2RGB_YVYU’, ‘COLOR_YUV420P2BGR’, ‘COLOR_YUV420P2BGRA’, ‘COLOR_YUV420P2GRAY’, ‘COLOR_YUV420P2RGB’, ‘COLOR_YUV420P2RGBA’, ‘COLOR_YUV420SP2BGR’, ‘COLOR_YUV420SP2BGRA’, ‘COLOR_YUV420SP2GRAY’, ‘COLOR_YUV420SP2RGB’, ‘COLOR_YUV420SP2RGBA’, ‘COLOR_YUV420p2BGR’, ‘COLOR_YUV420p2BGRA’, ‘COLOR_YUV420p2GRAY’, ‘COLOR_YUV420p2RGB’, ‘COLOR_YUV420p2RGBA’, ‘COLOR_YUV420sp2BGR’, ‘COLOR_YUV420sp2BGRA’, ‘COLOR_YUV420sp2GRAY’, ‘COLOR_YUV420sp2RGB’, ‘COLOR_YUV420sp2RGBA’, ‘COLOR_mRGBA2RGBA’]

例程 14.2:颜色空间转换

    # 14.2 OpenCV 颜色空间转换类型# 读取原始图像imgBGR = cv.imread("../images/imgLena.tif", flags=1)  # 读取为BGR彩色图像print(imgBGR.shape)imgRGB = cv.cvtColor(imgBGR, cv.COLOR_BGR2RGB)  # BGR 转换为 RGB, 用于 PyQt5, matplotlibimgGRAY = cv.cvtColor(imgBGR, cv.COLOR_BGR2GRAY)  # BGR 转换为灰度图像imgHSV = cv.cvtColor(imgBGR, cv.COLOR_BGR2HSV)  # BGR 转换为 HSV 图像imgYCrCb = cv.cvtColor(imgBGR, cv.COLOR_BGR2YCrCb)  # BGR转YCrCbimgHLS = cv.cvtColor(imgBGR, cv.COLOR_BGR2HLS)  # BGR 转 HLS 图像imgXYZ = cv.cvtColor(imgBGR, cv.COLOR_BGR2XYZ)  # BGR 转 XYZ 图像imgLAB = cv.cvtColor(imgBGR, cv.COLOR_BGR2LAB)  # BGR 转 LAB 图像imgYUV = cv.cvtColor(imgBGR, cv.COLOR_BGR2YUV)  # BGR 转 YUV 图像# 调用matplotlib显示处理结果titles = ['BGR', 'RGB', 'GRAY', 'HSV', 'YCrCb', 'HLS', 'XYZ', 'LAB', 'YUV']images = [imgBGR, imgRGB, imgGRAY, imgHSV, imgYCrCb,imgHLS, imgXYZ, imgLAB, imgYUV]plt.figure(figsize=(10, 8))for i in range(9):plt.subplot(3, 3, i + 1), plt.imshow(images[i], 'gray')plt.title(titles[i])plt.xticks([]), plt.yticks([])plt.tight_layout()plt.show()


【本节完】

版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125248543)
Copyright 2022 youcans, XUPT
Crated:2022-6-12
欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中
欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中

【OpenCV 例程200篇】201. 图像的颜色空间转换相关推荐

  1. 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理

    [OpenCV 例程200篇]37. 图像的灰度化处理和二值化处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 按 ...

  2. 【youcans 的 OpenCV 例程 200 篇】112. 滤波反投影重建图像

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  3. 【youcans 的 OpenCV 例程 200 篇】111. 雷登变换反投影重建图像

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  4. 【youcans 的 OpenCV 例程 200 篇】107. 退化图像的维纳滤波

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  5. 【OpenCV 例程200篇】80. 频率域图像滤波详细步骤

    [OpenCV 例程200篇]80. 频率域图像滤波详细步骤 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. 频 ...

  6. 【OpenCV 例程200篇】79. 频率域图像滤波的基本步骤

    [OpenCV 例程200篇]79. 频率域图像滤波的基本步骤 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. ...

  7. 【OpenCV 例程200篇】78. 频率域图像滤波基础

    [OpenCV 例程200篇]78. 频率域图像滤波基础 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. 频率域 ...

  8. 【OpenCV 例程200篇】76. OpenCV 实现图像傅里叶变换

    [OpenCV 例程200篇]76. OpenCV 实现图像傅里叶变换 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  9. 【OpenCV 例程200篇】75. Numpy 实现图像傅里叶变换

    [OpenCV 例程200篇]75. Numpy 实现图像傅里叶变换 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  10. 【OpenCV 例程200篇】74. 图像的抗混叠

    [OpenCV 例程200篇]74. 图像的抗混叠 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 2.2 图像的混叠 ...

最新文章

  1. C 语言编程 — 函数
  2. 上拉电阻和下拉电阻的作用详解
  3. 【Linux】28_网站服务动态站点
  4. VS Code修改菜单栏字体大小
  5. 测试攻城狮必备技能点!一文带你解读DevOps下的测试技术
  6. xp共享文件win7访问时不能保存密码
  7. 基于51单片机直流电机PWM控制器设计
  8. Bartender软件使用VB判断条件并返回值
  9. 通过IO口控制STC15F2K60S2系列单片机输出pwm
  10. java for 下标_java中foreach语句如何获取数组下标
  11. 关于光伏电站后运维时代运维模式的创新思路与构想
  12. 哈希表算法通俗理解和实现
  13. javaFX实现登录界面并跳转
  14. 上市早不如巧,深度剖析嘉楠“两个第一”的内涵
  15. html+js+css国际象棋,画面超精致!!
  16. 正则表达式 (js)
  17. 流浪的python博客园_python学习心得第二章
  18. 什么是Tomcat?Tomcat是什么意思?
  19. 大数据企业面试真题汇总三
  20. Android 集成 zxing

热门文章

  1. oracle asm文件查找,Oracle ASM 文件管理
  2. Spring常用注解。
  3. 2016计算机考研经验,2016届浙大计算机考研复习经验整理
  4. 定时任务cron表达式工具
  5. 如何在中小型软件企业推进PMO(项目管理办公室)建设
  6. html字体设置匹配移动端,移动端字体的设置
  7. 打不开malloc和free函数
  8. SSD性能怎么测?看这一篇就够了!
  9. DCMTK 关键配置
  10. 神器octotree