openCV 学习日记(1)

OpenCV3 Python图像处理初探:通道、读写与颜色转换
这篇博客是作者学习OpenCV3的笔记,主要介绍了OpenCV3库的简介、计算机视觉中图像的存储方式、图像处理的初步概念,包括通道、灰度图与三色图的转换。详细讲解了如何使用numpy操作图像矩阵,如读写图像、查询和修改像素值。

绪言

咩哈哈哈哈哈,大家好呀,这里是一名已经放弃了ACM的中山大学大二学生。随着对智科的学习,对计算机视觉这一块也是越来越有兴趣了,目前学习的是基于Python的opencv3的计算机视觉学习,这一篇属于一个总览吧。基于的书为《OpenCV3计算机视觉Python语言实现》第二版,但是不得不说,这本书错误真的不少……而且代码好像是没有实测过的,得手动调一下bug。

OpenCV3简介

OpenCV是一个英特尔公司开发的计算机视觉库,其特点在于开源,封装程度高,易操作。

计算机视觉图片存储简介

数字图像,在计算机中是采用矩阵(Matrix)的形式进行存储的,每一张图像的每个像素点都会有一个矩阵进行存储颜色信息(比如采用RGB格式的,就会在每一个像素点放置一个3*1的矩阵)比如,我要创建一张3*3的8位图像,其语句如下:

img=numpy.zeros((3,3),dtype=numpy.uint8)

或者

img=numpy.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])

但后者一般用于卷积核的创建,卷积的概念将会在后面介绍高斯滤波器时说到。
对其进行print操作,可得:
[[0 0 0]
[0 0 0]
[0 0 0]]
这是一个8位图像,而我们知道,一张RGB图像应有24位(RGB三色各有8位),因此,我们可以用颜色转换函数cvtColor来进行转换:

img=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

该函数的第一个参数是原图像文件,opencv的图像处理函数特点为,多数的图像处理函数都会直接覆盖掉原图像,不需要做备份(否则缓存区很容易爆掉)。第二个参数为设置位,cv2.COLOR_GRAY2BGR即为将灰度图转化为三原色彩色图像。

图像处理初步

通道

通道的定义

现在我们来了解一下通道的概念,我们知道,灰度图中只有一种原色:黑,对应一个颜色通道;而BGR三原色有三种基本色,因此对应三个通道。我们使用numpy创建图像矩阵时,是创立了一个有3*3的矩阵。而转换成BGR后,我们可以print一下新的图像来看看:
[[[0 0 0]
[0 0 0]
[0 0 0]]

[[0 0 0]
[0 0 0]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值