当前位置: 首页 > article >正文

OpenCV基础入门30讲(Python)——第二讲 图像色彩转换

常见的几种颜色类型介绍

1、彩色图像(Color Image,BGR)

  • 数据类型uint8
  • 通道数:3(BGR:蓝色、绿色、红色)
  • 描述:彩色图像有三个通道,每个通道的值范围是 0 到 255,分别表示蓝色(B)、绿色(G)、红色(R)分量的强度。需要注意的是,OpenCV 默认采用 BGR 通道顺序,而不是常见的 RGB。
  • 用途:适用于大多数场景下的彩色图像处理,如物体检测、图像分割等。

2、灰度图像(Grayscale Image)

  • 数据类型uint8(无符号 8 位整数)
  • 通道数:1
  • 描述:灰度图像只有一个通道,每个像素点的值范围为 0 到 255,0 表示黑色,255 表示白色,中间值表示不同的灰度。
  • 用途:用于简化计算,尤其在图像处理和计算机视觉任务中,灰度图像常被用于边缘检测、阈值处理等。

3、HSV图像

  • H(Hue,色调)
    • 范围:0 到 179(在 OpenCV 中)
    • 描述:表示颜色的基本属性,如红色、蓝色、绿色等。0 表示红色,60 表示黄色,120 表示绿色,180 表示蓝色。
  • S(Saturation,饱和度)
    • 范围:0 到 255
    • 描述:表示颜色的纯度。0 表示灰色(无色彩),255 表示最饱和的颜色。
  • V(Value,明度/亮度)
    • 范围:0 到 255
    • 描述:表示颜色的亮度。0 表示完全黑色,255 表示最亮的颜色。

代码讲解

在上一讲的main文件中加入以下代码:

# 第二节课 图像色彩转换
def color_space_demo():
    image = cv.imread('C:/Users/28267/Desktop/Python/Py_OpenCV481/python_opencv_quick_tutorial/image/3.jpg')
    if image is None:
        print("错误: 未发现图像或者图像不能被加载.")
# 缩放图像 由于我要显示的图像太大了,所以接下来四行我进行了一下缩放
    # 将 image 图像的宽*0.2,得到新的宽度
    width = int(image.shape[1] * 0.2)
    # 将 image 图像的高*0.2,得到新的高度
    height = int(image.shape[0] * 0.2)
    # 设置宽高比
    dim = (width, height)

    # 缩小图像 调用 OpenCV 中的 resize 函数缩小图像
    # 参数1:要缩小的图像,参数2:缩小后的图像宽高,参数3:插值方法,默认为INTER_LINEAR
    resized_image = cv.resize(image, dim, interpolation=cv.INTER_AREA)
    # 用 cvtColor 函数,把 resized_image 指向的图像颜色 从 BGR 转换为灰度图像
    # 我们通常说RGB 但是在OpenCV中读取图像的顺序是蓝色,绿色,红色,所以叫BGR
    gray = cv.cvtColor(resized_image, cv.COLOR_BGR2GRAY)
    # 用 cvtColor 函数,把 resized_image 指向的图像颜色从 BGR 转换为HSV图像
    hsv = cv.cvtColor(resized_image, cv.COLOR_BGR2HSV)

    # 显示最开始读取的原图像
    cv.imshow("resized_image", resized_image)
    # 显示灰度图像   gray:灰色
    cv.imshow("gray_image", gray)
    # 显示HSV图像
    cv.imshow("hsv_image", hsv)
    cv.waitKey(0)
    cv.destroyAllWindows()

将主函数部分更改为: 

# 主函数运行函数 color_space_demo
if __name__ == "__main__":
    color_space_demo()

main文件代码,布局:

运行效果图:

特别介绍

以后只需要在main文件中加入我们要写的函数,例如:

# 第二节课 色彩空间转换
def color_space_demo():
    image = cv.imread('C:/Users/28267/Desktop/Python/Py_OpenCV481/python_opencv_quick_tutorial/image/3.jpg')
    if image is None:
        print("错误: 未发现图像或者图像不能被加载.")
# 缩放图像 由于我要显示的图像太大了,所以接下来四行我进行了一下缩放
    # 将 image 图像的宽*0.2,得到新的宽度
    width = int(image.shape[1] * 0.2)
    # 将 image 图像的高*0.2,得到新的高度
    height = int(image.shape[0] * 0.2)
    # 设置宽高比
    dim = (width, height)

    # 缩小图像 调用 OpenCV 中的 resize 函数缩小图像
    # 参数1:要缩小的图像,参数2:缩小后的图像宽高,参数3:插值方法,默认为INTER_LINEAR
    resized_image = cv.resize(image, dim, interpolation=cv.INTER_AREA)
    # 用 cvtColor 函数,把 resized_image 指向的图像颜色 从 BGR 转换为灰度图像
    # 我们通常说RGB 但是在OpenCV中读取图像的顺序是蓝色,绿色,红色,所以叫BGR
    gray = cv.cvtColor(resized_image, cv.COLOR_BGR2GRAY)
    # 用 cvtColor 函数,把 resized_image 指向的图像颜色从 BGR 转换为HSV图像
    hsv = cv.cvtColor(resized_image, cv.COLOR_BGR2HSV)

    # 显示最开始读取的原图像
    cv.imshow("resized_image", resized_image)
    # 显示灰度图像   gray:灰色
    cv.imshow("gray_image", gray)
    # 显示HSV图像
    cv.imshow("hsv_image", hsv)
    cv.waitKey(0)
    cv.destroyAllWindows()

再把主函数部分改成我们新写的函数名,例如

# 主函数运行函数 color_space_demo
if __name__ == "__main__":
    color_space_demo()

即可运行我们新写的代码。


http://www.kler.cn/news/311961.html

相关文章:

  • 卷积参数量计算公式
  • GO主流开源框架
  • python测试开发---js基础
  • 网工请注意!华为认证笔试考试系统升级公告!
  • Matlab Delany-Bazley和Miki模型预测多孔材料吸声性能
  • pprof简单使用
  • 五、I/O与网络编程-5.2、网络编程
  • 全国各省山峰分布SHP数据
  • 【深度学习】(3)--损失函数
  • git使用“保姆级”教程1——简介及配置项设置
  • Kafka基础概念
  • Vivado FIR IP 详解 (一)
  • yolo车位数据集
  • MATLAB 图像处理入门详解
  • 油烟机制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
  • 2.计算机网络基础
  • C# 比较对象新思路,利用反射技术打造更灵活的比较工具
  • 基于 jenkins 的持续集成、持续部署方案
  • 自然语言处理入门:从基础概念到实战项目
  • 计算机毕业设计 教师科研信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Redis性能测试redis-benchmark
  • ORACLE SAVEPOINT保存点
  • Vue 中常用的基础指令
  • 一、编译原理(引论)
  • 【Python技术】使用akshare、scikit-learn预测股票涨跌简单例子
  • web基础—dvwa靶场(九)Weak Session IDs
  • 组题能力研判:基于教师上传试卷的深度分析
  • AI应用的时代:从大模型到个性化创新
  • 【Python】练习:控制语句(二)第2关
  • 深入理解ElasticSearch集群:架构、高可用性与数据一致性