系列文章目录

第一章 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()

实现效果:

opencv 显示bmp java opencv 显示器接口_计算机视觉

上图中用红色框出来部分即保存的图像数据;


总结

以上就是今天要讲的内容,本文仅仅简单介绍了 python 语言下 opencv 的基础接口的使用,而 opencv 提供了大量能使我们快速便捷地处理图像的函数和方法,后续会逐步更新更多的接口说明和应用说明