目录
一 opencv 简介:
Opencv是一个C++库,用于实时处理计算机视觉问题,除了C++和C,python作为一种简洁的脚本语言,在C++代码基础上的python接口得到了越来越广泛的支持
二 Opencv的安装:
1 需要安装:opencv-python,opencv-contrib-python
直接在终端中输入
pip install opencv-python opencv-contrib-python
# 使用下面的指令可以指定版本
pip install opencv-python==4.5.4.60 opencv-contrib-python==4.5.4.60
如果安装不成功,使用清华镜像安装
pip install opencv-python opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple
opencv-python 的特点
-
只包含 OpenCV 的主仓库(main repository)模块
-
包含最常用的计算机视觉功能
-
更小的安装包体积
-
适合大多数基础应用场景
opencv-contrib-python 的特点
-
包含主仓库和contrib仓库的所有模块
-
额外包含许多实验性和专利保护的算法
-
提供更多高级功能,如:
-
特征检测与描述(SIFT, SURF等)
-
文本检测与识别
-
深度神经网络模块(DNN)
-
结构化光
-
生物特征识别(人脸识别等)
-
更多图像处理算法
-
三 在python 中使用opencv:
常用方法简介:
3.1读取图像
# 语法格式如下
image = cv2.imread(filename, flags)
# 参数说明
# image:是imread方法的返回值,返回的是读取到的图像。
# filename:尧都区图像的完整路径
# flags:读取图像颜色类型的标记(默认值为1,可以省略,表示读取彩色图像
flags值为0时,表示读取的时灰度图像,即使是彩色图像也可以读取为灰色图像)
3.2显示图像
cv2.imshow(winname, mat)
# 参数说明
# winname: 显示窗口的图像名称。
# mat: 要显示的图像
3.3 等用户按下键盘上按键的时间, 语法格式如下
retval = cv2.waitkey(delay)
# 参数说明
# retval:与被按下的按键相对应的ASCALL码,列如:Esc对应27,空格键对应32
# delay:等待用户按下键盘上按键的时间
3.4 用于销毁所有正在显示图像的窗口,其语法格式如下
cv2.destroyALllWindows()
3.5保存图像
# 语法格式如下:
cv2.imwrite(filename, img)
# 参数说明
# filename:要保存的路径和名称
# img:要保存的文件(imread获取的)
import cv2
image = cv2.imread(r"./image/zly.jpg") # 读取图像
cv2.imshow("hello", image) # 在名为mountain的窗口上显示图像
cv2.waitKey() # 按下任何键盘按键后
cv2.destroyAllWindows() # 销毁所有窗口
cv2.imwrite("./image/zly2.jpg",image)
3.6获取图像属性
opencv提供了shape, size, dtype这三个常用属性,解释如下:
shape:
如果是彩色图像,那么获取的是一个由图像的像素数列、像素行数和通道数所组成的数组,如果是灰度图像,那么获取的是一个包含图像的像素列数、像素行数的数组
size:
获取的是图像包含的像素个数,其值为“像素列数 X 像素行数 X 通道数”(灰度图像通道数为1)
dtype:
获取的是图像的数据类型。
import cv2
image_Color = cv2.imread(r"./image/zly.jpg") # 读取图像
print("获取彩色图像的属性")
print("shape =", image_Color.shape)
print("size=", image_Color.size)
print("dtype=", image_Color.dtype)
image_Gray = cv2.imread(r"./image/zly.jpg", 0)
print("获取灰度图像的属性")
print("shape =", image_Gray.shape)
print("size=", image_Gray.size)
print("dtype=", image_Gray.dtype)
得到结果:
获取彩色图像的属性
shape = (1380, 690, 3)
size= 2856600
dtype= uint8
获取灰度图像的属性
shape = (1380, 690)
size= 952200
dtype= uint8