这里写目录标题
- 一. Opencv 基于ndarray的基本操作
- 1. 浅拷贝
- 2. np.copy ( ) 深拷贝
- 3. 堆叠
- 3.1 np.vstack ( ) 垂直方向堆叠
- 3.2 np.hstack ( ) 水平方向堆叠
- 4. numpy创建图像
- 5 np.transpose ( ) 更改维度顺序
- 6. cv.resize ( ) 放大缩小
- 7. np.clip ( )
一. Opencv 基于ndarray的基本操作
1. 浅拷贝
拷贝前后的两张图片:变化一致
2. np.copy ( ) 深拷贝
拷贝前后的两张图片:互不影响
3. 堆叠
3.1 np.vstack ( ) 垂直方向堆叠
将数组垂直堆叠,形成一个新的数组
3.2 np.hstack ( ) 水平方向堆叠
将数组水平堆叠,形成一个新的数组
4. numpy创建图像
numpy通过相关创建数组语法,指定图像宽高通道数和类型(一般为unit8),创建图像
5 np.transpose ( ) 更改维度顺序
np.transpose(a, axes=None)
参数:
a:ndarray数据
axes:维度,默认情况下为颠倒所有维度
作用:
对ndarray数据进行转置
【注意】
若想对一个矩阵进行转置,该矩阵必须为方阵
6. cv.resize ( ) 放大缩小
resize(src,dsize[,dst[,fx[,fy,interpolation]]]])
必须参数:
src:需要缩放的图片
dsize:
【可能会发生形变】
缩放之后的图片大小,元组和列表表示均可
注意:它是必选参数,参数可以是None
可选参数:
dst:
缩放之后的输出图片(该参数C++才用)
注意:python语法中输出图片直接进行赋值
fx,fy:
x轴和y轴的缩放比,即宽度和高度的缩放比(倍数)
特别注意,使用fx,fy时:
fx,fy必须一起出现,同时必须dsize=None;否则fx,fy不生效
interpolation:
插值算法,缩小没有插值问题,放大存在该问题
主要有以下几种:
INTER_NEAREST,临近插值,速度块,效果差
INTER_LINEAR,双线性插值,使用原图中的4个点进行插值,默认
INTER_CUBIC,三次插值,原图中的16个点
INTER_AREA,区域插值,效果最好,计算时间最长
7. np.clip ( )
np.clip ( )
参数:
a:需要被裁剪的数组
a_min:元素的最小值
a_max:元素的最大值
out:
指定一个输出数组,用于存放结果
如果不指定,则会创建一个新的数组
作用:
用于将数组中的元素限制在指定的最小值和最大值之间
感谢阅读🌼
如果喜欢这篇文章,记得点赞👍和转发🔄哦!
有任何想法或问题,欢迎留言交流💬,我们下次见!
本文相关代码存放位置
【Opencv 基于ndarray的基本操作】
祝愉快🌟!