系列文章目录
第一章 python 下 opencv 接口的参数详解及使用(一)
文章目录
- 目录
系列文章目录文章目录前言一、基础接口说明1、opencv 图像读入接口说明2、opencv 图像尺寸缩放接口说明3、opencv 图像显示接口说明4、opencv 存储图像接口说明二、基础接口实现代码展示总结
前言
随着视觉的发展,基于 opencv 和深度学习的组合使用越来越广泛,而开源的 opencv 也支持 python 的调用,基于此,对 python 下的 opencv 进行详细接口说明和实例演示,本文说明图像读入、图像尺寸缩放、图像显示、图像存储接口;
一、基础接口说明
1、opencv 图像读入接口说明
接口:cv2.imread(filename , flags = None)
作用:读取一张图像
参数:
。fliename :读取文件的名称及路径(路径可以是绝对路径,也可以是相对路径)
。flags:图像文件的读取方式(三种)
(1)cv2.IMREAD_COLOR :以彩色方式读取图像数据,不考虑图像的透明度(对应读取数值:1)
(2)cv2.IMREAD_GRAYSCALE :以黑白方式读取图像数据,即灰色模式读取(对应读取数值:0)
(3)cv2.IMREAD_UNCGANGED :以原始文件形态读取图像数据,包括 Alpha 通道(对应读取数值:-1)
说明:opencv 可以读取的图像种类如下:
。BMP:windows 位图文件
。PBM、PGM、PPM:可移植图文件格式
。SR、RAS:Sun 图文件格式
。JPEG、JPG、JPE:JPEG 图文件格式
。TIFF、TIF:TIFF 图文件格式
。PNG:可移植网络图文件格式
2、opencv 图像尺寸缩放接口说明
接口:cv2.resize(src , dsize , dst = None , fx = None , fy = None , interpolation = None)
作用:修改原始图像的大小
参数:
。src:输入的原始图像
。dsize:输出图像的尺寸大小(元组方式传入)
。dst:输出的图像
。fx:沿水平轴缩放的比例因子
。fy:沿垂直轴缩放的比例因子
。interpolation:插值方式
(1)cv2.INTER_NEAREST :最近邻插值
(2)cv2.INTER_LINEAR :双线性插值(默认)
(3)cv2.INTER_AREA :使用像素区域关系进行重采样
(4)cv2.INTER_CUBIC :4x4像素邻域的双3次插值
(5)cv2.INTER_LANCZOS4 :8x8像素邻域的Lanczos插值
在进行图像缩放中有以下几种方式需要注意:
(1)当 dsize = 0 时,缩放实际是以下公式实现:dsize = Size(round(fx*src.cols) , round(fy*src.rows)) ,并且 fx、fy 均不能等于 0;
(2)当 fx = 0 时,缩放实际是以下公式实现: (double)dsize.width / src.cols
(3)当 fy = 0 时,缩放实际是以下公式实现: (double)dsize.height / src.rows
3、opencv 图像显示接口说明
接口:cv2.imshow(winname , mat)
作用:显示已经读入或处理后的图像
参数:
。winname:显示窗口的名称,显示在窗口左上角,方便窗口之间的分辨和比较
。mat:需要显示的图像数据
4、opencv 存储图像接口说明
接口:cv2.imwrite(filename , img)
作用:保存读入过的或处理后的图像
参数:
。filename:需要保存图像文件的文件名
。img:需要保存的图像数据
二、基础接口实现代码展示
本文介绍了 opencv 的读入、显示、存储、保存四个基本接口,并在下面对这些接口进行了实现,具体代码如下:
import cv2
filename = "image_1.bmp"
# 读入图像数据
image = cv2.imread(filename = filename , flags = None)
# 对图像进行缩放操作
image = cv2.resize(src = image , dsize = (500 , 500) , interpolation = cv2.INTER_NEAREST)
# 存储图像
cv2.imwrite(filename = "new_image.jpg", img = image)
# 对图像进行显示
cv2.imshow(winname = "image_show" , mat = image)
cv2.waitKey(0)
cv2.destroyAllWindows()
实现效果:
上图中用红色框出来部分即保存的图像数据;
总结
以上就是今天要讲的内容,本文仅仅简单介绍了 python 语言下 opencv 的基础接口的使用,而 opencv 提供了大量能使我们快速便捷地处理图像的函数和方法,后续会逐步更新更多的接口说明和应用说明