机器视觉opencv模块之cvtColor方法介绍

说起opencv,相信做过计算机视觉的朋友都很熟悉,特别是opencv中的cv2.cvtColor方法会用来对图片颜色通道进行转换。今天就介绍一下它的简单使用。

opencv简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库。主要应用到下面的这些领域:

1、人机互动 ;2、物体识别 ;3、图像分割 ;4、人脸识别;5、动作识别;6、运动跟踪 ;7、机器人;8、运动分析;9、机器视觉 ;10、结构分析 ;11、汽车安全驾驶

计算机视觉作为人工只能最火的一个方向,而Python作为人工能的工具语言,毫不意外的,opencv提供了opencv-python第三方包,这个包里包含许多python的高级的API接口,Python开发直接调包到方法即可使用。

方法介绍:cv2.cvtColor

cv2提供了大量的图片处理的方法,想要深入的话,去网上找一下专门的教程来学习,今天这里只简单介绍cv2.cvtColor通道的变换方式。

1、介绍此方法之前,先了解一下opencv何如读取图片的

在opencv中,图片的读取使用cv2.imread方法,下面看一个实例:

import cv2

img_path = ".\\pictrues\\canglaoshi.jpg"

def read_image():
    # 读取图片的B,G,R 返回一个ndarray类型
    img = cv2.imread(img_path, cv2.IMREAD_COLOR)
    cv2.show("img", img)
    cv2.waitKeyEx(0)

运行结果之后,读取的图片展示图下:

2、再明白了图片的读取之后,接下来就看一下,如何将BGR转化为别的格式的方法:

通道转换说明几点:

经常用到的颜色转换:BGR-->RGB, BGR-->Gray 和 BGR-->HSV
BGR-->RGB: 经过摄像头采集的图像的通道排列顺序为BGR,而BMP文件的排列顺序也为BGR,所以保存成BMP文件使不会出现什么问题。
但是在显示器上显示的时候的排列顺序为RGB,所以RGB是为了让机器更好的显示图像,。
BGR-->Gray:将BGR的图像转为单通道的灰色图像
BGR-->HSV: 一般对颜色空间的图像进行有效处理都是在HSV空间进行的。RGB是为了让机器更好的显示图像,对于人类来说并不直观,
HSV更为贴近我们的认知,所以通常我们在针对某种颜色做提取时会转换到HSV颜色空间里面来处理.

代码展示如下:

import cv2

image_path = ".\\pictreus\canglaoshi.jpg"

def cvt():
    img = cv2.imread(img_path)
    cv2.imshow("img", img)
        # BGR-->RGB
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    cv2.imshow("img_rgb", img_rgb)

        # 图像的灰化YUV(Y为灰度图, Y=0.299R+0.587G+0.114B):BGR-- >Gray
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imshow("img_gray", img_gray)

        # HSV模型转化YUV(Y为亮度, UV代表色度)BGR-->HSV
    img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    cv2.imshow("img_hsv", img_hsv)

    cv2.waitKeyEx(0)

if __name__ == '__main__':
cvt()

运行代码之后,展示的图片效果如下:

→GBR转化为RGB←

→GBR转化为GRAY←

→GBR转化为HSV←

在实际工作中,使用opencv,,对图片通道的处理只是机器视觉中一个最基本的一个操作,当然还有一些其他的操作,大家下去可以再去深入了解一下,本文只是为大家普及一下简单的使用而已。

推荐阅读:

面试大厂,被怼的体无完肤!!!

黑客们会用到哪些Python技术?

从此再无真「相」!这些人全部是AI生成

看了这篇文章,别说不懂深拷贝与浅拷贝

说点感悟,聊点技术

史上最污技术解读,我竟然秒懂了!

Python全家桶

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值