opencv简介
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
opencv官网:https://opencv.org/
opencv安装
软件:anaconda + pycharm
anaconda用于安装python、opencv等用到等库;使用指令安装:pip install opencv-python;
pycharm用于编写.py文件。
opencv图像处理基本语句
读取图像
- 函数:imread(const string& filename,int flag)
- 参数:第一个参数filename为图像路径;第二个参数flag(默认以RGB通道读取图像),0表示总是读出灰度图,1表示总是读出彩色图,2表示读出原深度图像,4表示读出原颜色图像
显示图像
- 函数:imshow(const string& winname, InputArray mat)
- 参数:第一个参数winname表示需要显示的窗口标识名称;第二个参数mat表示需要显示的图像
- 在一般编程时,imshow()会和waitKey()一同出现,用于将图像显示框延迟一定的时间
延时函数
- 函数:waitKey(int delay)
- 参数:等待的时间,当delay≤ 0,一直等待,按任意键关闭窗口;当delay>0时,就是等待delay毫秒。
保存图像
- 函数:imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>() )
- 参数:第一个参数filename表示需要写入的文件名;第二个参数img表示要保存的图像;第三个参数params表示为特定格式保存的参数编码
将图像转为灰度图
- 函数:cvtColor(src, code, dst, dstCn)
- 参数:第一个参数src表示原图像;第二个参数code表示图像转换类型;第三个参数dst默认值为None;第四个参数dstCn默认值为None
将两幅图像按权重融合
- 函数:addWeighted(src1, alpha, src2, beta, gamma, dst, dtype)
- 参数:第一个参数src1表示融合的第一幅图像;第二个参数alpha表示融合第一幅图像的权重;第三个参数src2表示融合的第二幅图像;第四个参数beta表示融合第二幅图像的权重;第五个参数gamma表示图一与图二作和后添加的数值,一般该值设置的不要太大
- 在使用该函数中,需要将两幅图像调整为同一尺寸,因此需要先用resize()函数调整图像的尺寸
改变图像大小
- 函数:resize(src, dsize, dst, fx, fy, interpolation)
- 该函数有两种功能,功能一为图像重新定义为指定的大小,功能二为将图像进行缩放;这两个功能参数设置方法不同
- 功能一参数:第一个参数src表示原图像;第二个参数dsize表示要变成的图像大小;第三个参数dst默认值为None;第四个参数fx默认值为None;第五个参数fy默认值为None;第六个参数interpolation默认值为None
- 功能二参数:第一个参数src表示原图像;第二个参数dsize设置为(0,0);第三个参数dst默认为None;第四个参数fx表示横向缩放倍数;第五个参数fy表示纵向缩放倍数;第六个参数interpolation默认值为None
代码
import cv2
img_01 = cv2.imread("doraemon_01.jpeg")
img_02 = cv2.imread("doraemon_02.jpg")
img_01 = cv2.resize(img_01, (200,300))
img_02 = cv2.resize(img_02, (200,300))
# 对图像进行缩放
# img = cv2.resize(img_01, (0,0), fx=1, fy=2)
img_gray = cv2.cvtColor(img_01, cv2.COLOR_RGB2GRAY)
img = cv2.addWeighted(img_01, 0.2, img_02, 0.8, 0)
cv2.imshow("ss", img)
cv2.waitKey(0)