IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> OpenCV常用函数 -> 正文阅读

[人工智能]OpenCV常用函数

1、imread

按照用于BGR读入图像
x = cv2.imread(path,flag)
path:路径,可以是相对路径,也可以是觉得路径,按时路径命中不可以出现中文。
flag:
	cv2.IMREAD_COLOR:读入彩色图像(可以直接写1)
	cv2.IMREAD_GRAYSCALE:读入灰度图像(可以直接写0)
	cv2.IMREAD_COLOR:和alpha通道有关...(可以直接写-1)
读入的图像格式:(height,weight,channel)

2、resize更改图像的shape

out = cv2.resize(src,dsize)
src	输入图片
dsize	输出图片尺寸

3、addWeighted (图像融合,)

该函数是将两张相同大小,相同类型的图片融合的函数。
数学原理:out = x_weight*x+y_weight*y+gamma
其中x_weight和y_weight分别为图像x和图像y的权重,取值小于1
gamma用于给整体添加亮度。如果gamma取值为255的话,那就一白色了。
out = cv2.addWeighted(x,x_weight,y,y_Weight,gamma)
out就是融合后的图像了。

4、imshow

用于展示图像
cv2.imshow(name,image)
cv2.waitKey(0)#参数0表示按任意键可以关闭窗口,传入其他数字可以让图像在一定时间内自动关闭
cv2.destroyAllWindows()

5、imwrite

用于保存图像
cv2.imwrite(path+name.jpg/png,image)
将图像image命名为name.jpg/png,并保存在path目录中

6、cvtColor

将读入的BGR转换为灰度图或者RGB
cv2.cvtColor(p1,p2)p1是需要转换的图片,p2是转换成何种格式。
cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式
cv2.COLOR_BGR2GRAY 将BGR格式转换为灰度图像

7、cv2.flip()

图像翻转函数,数学原理是基于矩阵的操作,
cv2.flip(src, flipCode[, dst])  # src为要操作的图像
flipCode = 1 水平翻转(就是将矩阵的每一行翻转)
flipCode = 0 垂直翻转(将矩阵的每一列翻转)
flipCode = -1 水平垂直翻转(同时将矩阵的每一行每一列进行翻转)

8、VideoCapture

vc = cv2.VidepCapture(path),可以打开mp4文件
判断成功打开
vc.isOpened() 如果是True的话,说明成功打开,否则打开失败

9、vc.read()用来读取 每一帧的图像

open,frame = vc.read()
其中open是一个bool型的变量,用来表示是否成功获取当前帧。
frame用来保存当前帧,视频结束后frame = None

10、cv2.split()用于图像的通道的分割

注意OpenCV按照BGR的格式读入图像
B,G,R = cv2.split(img)
等价于B = img[:,:,0],G = img[:,:,1],R = img[:,:,2]

11、cv2.merge(),与split对应,用于图像通道的合成

img = cv2.merge((b,g,r))

12、边缘填充函数 cv2.copyMakeBorder

可以用于给图像设置一个边框,也常常用在卷积操作中,用来扩充矩阵数据,使矩阵的shape不变。
out = cv2.copyMakeBorder(src,top,bottom,left,right,borderType = )
src是待修改的图像。
top,bottom,left,right表示向四个方向的扩充大小。
borderType的取值
cv2.BORDER_CONSTANT,后边需要加一个value,就是手动设置填充值(value)
cv2.BORDER_REFLECT ,镜面反射。
cv2.BORDER_DEFAULT(或者cv2.BORDER_REFLECT_101)也是镜面反射,但是和上边得又有所不同。
cv2.BORDER_WRAP

13、cv2.add cv中的图像加法

可加的前提是shape要相同
img = img1 + img2,直接相加是做的是numpy数组的加法,得到像素值应该是
img = (img1 + img2) % 256
img = cv2.add(img1,img2)这个是cv2中的图像加法,做的操作相当于img = min(255,img1+img2)

14、cv2.threshold(src,thresh,maxval,type)

阈值操作
ret,dst = cv2.threshold(src,thresh,maxval,type)
其中ret = float(thresh),就是浮点化的阈值。
dst是操作后返回的图像
src是待处理的图像
thresh是输入的阈值
maxval是待填充色值。
type是阈值操作的操作类型
type的取值可以有以下几种:
? cv2.THRESH_BINARY(黑白二值)(大于阈值的置位maxval,小于阈值的置位0)
? cv2.THRESH_BINARY_INV(黑白二值反转)与第一个刚好相反
? cv2.THRESH_TRUNC  大于阈值的像素值设置为阈值,否则不变
? cv2.THRESH_TOZERO 大于阈值的像素值不变,小于的置为0
? cv2.THRESH_TOZERO_INV 与上一个刚好相反(大于阈值的为0,小的不变)

15、几种滤波操作
高斯滤波模板实现原理

均值滤波 :模板与图像做卷积操作后取平均值来代替模板中心的灰度值 
cv2.blur(src,ksize),其中src是原图像,ksize指kernelsize,为奇数
高斯滤波 :模板邻域内不同位置的像素会被赋予不同的权值,高斯模板是通过高斯函数得到的。
cv2.GaussianBlur(src,ksize,sigmaX) sigmaX表示的是在X方向的标准差
中值滤波 :使用模板返回内图像像素值的中值作为模板的中心值。
cv2.medianBlur(src,ksize)
具体使用哪种滤波,ksize为多少,可以都实验一下,然后进行择优。可以使用np.hstack()进行平铺比较
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:27:11  更:2021-10-13 11:29:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:41:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码