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()函数中可选择的标志
标志简记作用
cv.IMREAD_UNCHANGED-1按照图像原样读取,保留alpha通道(第4个通道)
cv.IMREAD_GRAYSCALE0将图像转换成单通道灰度图像后读取
cv.IMREAD_COLOR1将图像转换成三通道BGR彩色图像后读取
cv.IMREAD_ANYDEPTH2保留原图像的16位、32位深度。若不声明该标志,则转成8位深度后读取
CV.IMREAD_ANYCOLOR4以任何可能的颜色格式读取图像
cv.IMREAD_LOAD_GDAL8使用GDAL驱动程序加载图像
cv.IMREAD_REDUCED_GRAYSCALE_216将图像转换成单通道灰度图像,尺寸缩小至原来的1/2。更改最后一位数字可以缩小至原来的1/4(最后一位改为4)和原来的1/8(最后一位改为8)
cv.IMREAD_REDUCED_COLOR_217将图像转换成三通道彩色图像后读取,尺寸缩小至原来的1/2。更改最后一位数字可以缩小至原来的1/4(最后一位改为4)和原来的1/8(最后一位改为8)
cv.IMREAD_IGNORE_ORIENTATION128不以EXIF的方向旋转图像

 

以上是关于OpenCV函数总结的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV阶段总结扩充。

opencv标定板像素尺寸

Python使用OpenCV设置图片尺寸!!

OpenCV 完整例程16. 不同尺寸的图像加法

在 OpenCV 中更改 blobFromImage 尺寸顺序

OpenCV-DFT最优尺寸cv::getOptimalDFTSize