opencv库入门

本文将对opencv库进行介绍,在介绍的同时以数字图像处理为切入点,分为理论部分和实践部分,其中理论部分会对图像的基础理论知识进行介绍,实践部分会通过opencv的使用进行介绍。


数字图像基本理论

矢量图和位图

矢量图是一串数学表达公式,illustrator中编辑的图形就是矢量图。位图是图像,由位置信息和灰度信息组成,Photoshop中编辑的图像就是位图。

opencv库入门_第1张图片

像素

一幅图像的表示形式是二维点阵形式f(x, y),x和y表征位置信息,f表征灰度信息。

opencv库入门_第2张图片

opencv实践部分

图像读取

我们使用cv2.imread()进行图像的读取,该函数会将不同格式的图像(JPEG, BMP等)以读入,并以ndarray的数据类型进行存储,对该对象的操作就是对numpy中ndarray的操作。

opencv库入门_第3张图片

图像通道的分离与合并

我们使用cv2.split()对图像进行分离,用cv2.merge()对图像进行合并。需要注意的是opencv的颜色通道是BGR,就是rgb反过来。当然你也可以直接把读入的图像当做numpy来进行通道分分割与合并,那样会更快,因为numpy的底层是用c写的,而python是一个很慢很慢的语言。

alpha通道的使用

增加一个二维的alpha通道便可,你的shape会变成(height, width,4)。

特定像素的访问

特定像素的访问可以通过[]采用定位的方式进行。

opencv库入门_第4张图片

像素的裁剪

像素的裁剪通过[]进行,像处理ndarray数据一样。

图像的放缩

图像的放缩通过cv2.resize实现。

pass

你可能感兴趣的:(人工智能,opencv,计算机视觉,图像处理)