OpenCV函数总结
Posted 是一个小迷糊吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV函数总结相关的知识,希望对你有一定的参考价值。
0...Numpy相关介绍
1).ndarray对象及其常用属性
ndarray是Numpy中可进行快速数学运算,具有广播能力且节约空间的N维数组对象。ndarray支持多维数组,而且提供了更多的操作功能,但是nddary对象中的所有元素必须为相同类型。
1)ndarray.shape
nadrray.shape表示数组的维度,返回一个元组,元组的长度即ndim。此属性可用于获取图像的尺寸,对于可以用n行和m列的数组表示的灰度图像img,img.shape(n,m);对于需要由3个n行和m列的数组表示的BGR图像的img0,img0.shape为(n,m,3)
2)ndarray.dtype
ndarray.dtype表示数组中元素的数据类型。图像在计算机中由像素构成的矩阵表示,每个像素值的大小决定了图像的质量。如果用8位无符号证书存储16位图像,会造成图像的颜色的改变,从而显示错误的图像。。
3)ndarray.ndim
ndarray.ndim表示数组的维度。ndim可用来比哦啊是你图像的通道数。在OpenCV函数中,通常使用C1、C2、C3、C4分别表示单通道、双通道、三通道和四通道。
4)ndarry.size
ndarry.size表示数组元素的总个数,在图像中常用它来计算数组中像素的个数。
5)代码实例:
#Numpy_Attributes.py中ndarry对象常用属性的使用实例
2).NumPy常用函数
1)创建ndarray对象
np.array()函数是创建数据最简单的方式,可以接受一切序列型的对象,并且可以指定对象中元素的数据类型。若没有指定,则会自动为新创建的数组推断一个合适的数据类型。
2)ndarray对象的切片和索引
img[0,0]可以选择灰度图像img中位于(0,0)位置的像素;img[x1:x2,y1:y2]可以对灰度图像img进行裁剪,其中x1、y1为图像左上角的坐标,x2、y2为图像右下角的坐标;img1[:,:,0]可以选取彩色图像img 中的蓝色通道。
3)生成随机数
np.random模块提供了能够生成多种随机数的函数。np.random.randint()函数可以从给定的范内随机选取整数;np.random.randn()函数可以产生服从均值为0、标准差为1的正态分布的数据。
4)代码实例
#Numpy_Operations.py中的NumPy相关函数的操作实例
1...图像的读取与显示
1)图像读取函数
img = cv.imread(filedname
[,flags])
参数:filename:需要读取的图像的路径,包含图像的名称和图像的扩展名
flags: 读取图像的形式和标志,如将彩色图像按照灰度图来读取,默认是按照彩色图像格式读取
备注:如果图像路径错误、破损或者格式不被支持,则无法正确读取图像,但此时不会报错,而是返回None。函数的第一个参数以字符串形式给出需要读取图像的路径,第二个参数设置读取图像的形式,默认以彩色图的形式读取。通过编码器内部转换可将彩色图像转换为灰度图,这可能会与OpenCV中将彩色图像转换成灰度图函数的转换结果有差异。这些标志在功能不冲突的前提下可以同时声明多个,彼此之间用“|”隔开。
cv.imread()函数中可选择的标志
标志 | 简记 | 作用 |
---|---|---|
cv.IMREAD_UNCHANGED | -1 | 按照图像原样读取,保留alpha通道(第4个通道) |
cv.IMREAD_GRAYSCALE | 0 | 将图像转换成单通道灰度图像后读取 |
cv.IMREAD_COLOR | 1 | 将图像转换成三通道BGR彩色图像后读取 |
cv.IMREAD_ANYDEPTH | 2 | 保留原图像的16位、32位深度。若不声明该标志,则转成8位深度后读取 |
CV.IMREAD_ANYCOLOR | 4 | 以任何可能的颜色格式读取图像 |
cv.IMREAD_LOAD_GDAL | 8 | 使用GDAL驱动程序加载图像 |
cv.IMREAD_REDUCED_GRAYSCALE_2 | 16 | 将图像转换成单通道灰度图像,尺寸缩小至原来的1/2。更改最后一位数字可以缩小至原来的1/4(最后一位改为4)和原来的1/8(最后一位改为8) |
cv.IMREAD_REDUCED_COLOR_2 | 17 | 将图像转换成三通道彩色图像后读取,尺寸缩小至原来的1/2。更改最后一位数字可以缩小至原来的1/4(最后一位改为4)和原来的1/8(最后一位改为8) |
cv.IMREAD_IGNORE_ORIENTATION | 128 | 不以EXIF的方向旋转图像 |
以上是关于OpenCV函数总结的主要内容,如果未能解决你的问题,请参考以下文章