栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python x OpenCV+Numpy 函数参考列表

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python x OpenCV+Numpy 函数参考列表

(1)图像的读取操作
cv2.imread(文件名,标记)
功能:给定文件名和读入方式,读入一幅图像
返回值:numpy数组,类型为ndarray的2维或3维数组
文件名:图像全名,包括后缀名
标记:
cv2.IMREAD_COLOR或1:读入一幅彩色图像。透明度会被忽略,是默认值
cv2.IMREAD_GRAYSCALE或0:以灰度模式读入图像
cv2.IMREAD_UNCHANGED或-1:读入一幅图像,并且包括图像的alpha通道

(2)图像的显示
cv2.imshow(窗口标题,图像数组)
功能:在给定标题的窗口中显示图像
参数:
窗口标题,字符串,不同窗口标题不能相同
图像数组,ndarray类型的2维或3维数组

(3)图像通道分离
x1, x2, … = cv2.split(图像数组)
参数:需要分离的图像数组,类型为ndarray
返回值:各通道分量

(4)颜色模型转换
cv2.cvtColor(图像数组,标记)
参数
图像数组,ndarray类型的数组,为要转换的图像输入
标记,指定要转换的目标图像颜色模型,支持RGB,HSV,YUV,YCbCr,GRAY等10余种常用颜色类型互转。标记通用式为:cv2.COLOR_[源颜色模型]2[目标颜色模型]

(5)图像代数计算
相加
cv2.add(src1, src2, dst=None, mask=None, dtype=None)
参数:
src1和scr2分别是要相加的图像,必须大小一致
dst为相加后的图像,一般为None,以返回值方式输出
mask为图像掩膜,是8位单通道灰度图,限制输出图像只保留掩膜图中的非0部分,默认为None
dtype为输出图像数组的深度,即图像单个像素值的位数,默认为None,表示与源图像保持一致
返回值:相加后的图像
相减
cv2.subtract(src1, src2, dst=None, mask=None, dtype=None),参数含义与add相同
相乘
cv2.multiply(src1, src2, dst=None, mask=None, dtype=None),参数含义与add相同
相除
cv2.divide(src1, src2, dst=None, mask=None, dtype=None),参数含义与add相同

(6)图像逻辑运算
与运算
cv2.bitwise_and(src1, src2, dst=None, mask=None),参数含义与add相同
或运算
cv2.bitwise_or(src1, src2, dst=None, mask=None),参数含义与bitwise_and相同
非运算
cv2.bitwise_not(src, dst=None, mask=None),参数含义与bitwise_and相同
异或运算
cv2.bitwise_xor(src1, src2, dst=None, mask=None),参数含义与bitwise_and相同

(7)图像几何运算
几何变换
cv2.warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)
参数:
src - 输入图像
M - 变换矩阵,为2×3的矩阵
dsize - 输出图像的大小,表示方式是(Weight, Height),转换为图像坐标即(列,行)
flags - 插值方法,在当转换后的坐标非整型时需要
cv2.INTER_LINEAR,线性插值,默认
cv2.INTER_NEAREST,最近邻插值
cv2.INTER_AREA,区域插值
cv2.INTER_CUBIC,三次样条插值
cv2.INTER_LANCZOS4,Lanczos插值
borderMode - 边界像素模式
cv2.BORDER_CONSTANT,添加有颜色的常数值边界,颜色由boderValue指定
cv2.BORDER_REFLECT,边界元素的镜像
cv2.BORDER_REPLICATE,重复最后一个元素
cv2.BORDER_WRAP,图像叠加
borderValue – 当边界模式为CONSTANT时,该参数指定颜色值(BGR模型)
获取旋转变换矩阵
cv2.getRotationMatrix2D(center, angle, scale)
参数
center,旋转中心,以(列坐标,行坐标)方式表示
angle,旋转角度,单位为度,正值为逆时针,负值为顺时针
scale,缩放因子
返回值:2×3的旋转变换矩阵
缩放函数
cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
参数:
src – 输入图像
dsize – 输出图像大小,缩放因子可自动根据输出图像大小计算
dst – 输出图像,一般为None,通过返回值输出
fx和fy – 水平方向和垂直方向缩放比例,当dsize设为None时,图像按该参数进行缩放。若设置了dsize,则该两参数无效
interpolation – 插值方式,取值与warpAffine中的flags相同,可取cv2.INTER_LINEAR,cv2.INTER_NEAREST,cv2.INTER_CUBIC等
模板运算
cv2.filter2D(src, ddepth, kernel, dst=None, anchor=None, delta=None, borderType=None)
参数
src – 输入图像
ddepth – 目标图像深度,一般为-1,表示 与原图像相同
kernel – 模板矩阵,float32类型
dst – 输出图像,一般不用
anchor – 模板的锚点,即模板移动的基准点,默认为(-1, -1)表示 模板中心
delta – 像素值偏移量,用于补偿像素值,一般不用
borderType – 边界填充方式,与borderMode相同

(8)线性灰度增强
cv2.convertScaleAbs(src, dst=None, alpha=None, beta=None)
参数
src – 输入图像
dst – 输出图像,一般通过返回值输出
alpha – 乘数因子,设为None时,相当于值为1
beta – 偏移量,设为None时,相当于值为0

(9)直方图生成
cv2.calHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None)
参数:
images – 输入图像,传入函数时要用中括号[]括起来
channels – 要获取的通道,灰度图为0,彩色图时0,1,2分别对应B,G,R,需要用中括号括起
mask – 掩模图像,指定要进行直方图统计的区域。为None时表示整幅图像
histSize – 直方图灰度级,一般为2的幂次方,需要用中括号括起
ranges – 要统计的像素值范围,[min, max],一般为[0, 256]
hist – 输出的直方图,通常以返回值输出
accumulate – 直方图是否叠加,在实现多幅图像统计为一个直方图中使用。默认为None,即false,表示不叠加;设为true时表示多幅图像的直方图叠加
返回值:为一个histSize*1的二维数组,每一行只有一个元素,表示当前索引灰度值出现的频数

np.histogram(a, bins=10, range=None, weights=None, density=None)
参数:
a – 输入数据,为一维数组,因此若对图像进行统计,要先通过raval函数将图像展开为一维数据,不需要用中括号括住
bins – 灰度级数,与cv2.calHist中的histSize相同,但不需要用中括号括住,默认为10
range – 要统计成直方图的灰度值范围,与cv2.calHist中的range相同
weights – 每个元素的权值,统计时可根据权值进行加权求和。默认为None,表示所有元素权值为1
density – 返回值类型,为true时,返回概率密度;为false或None时,返回元素出现次数
返回值:2维tuple结构,第一维大小与bins一致,为各灰度值出现概率或次数;第二维大小为bins+1,为灰度索引。多一个元素是因为多了一个255-255.9的区间,实际上没有意义

(10)直方图绘制
Matplotlib.pyplot.plot(x, y, format_string)
参数:
x – x轴数据,列表或数组。可省略
y – y轴数据,当只有一组数据时,该数据视为y
format_string – 格式描述,描述颜色,标记和线型。可直接用取值字符组合,或通过color,marker和linestyle三个参数分别指定
color颜色取值:’b’, ‘g’, ‘r’, ‘c’, ‘m’, ‘y’, ‘k’, ‘w’, ‘#*****
linestyle线型取值:’-’, ‘—’, ‘-.’, ‘:’, ‘’ ‘’
marker标记取值:’.’, ‘o’, ‘+’, ‘
’, ‘d’, ‘s’……

Matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, align=‘center’)
参数:
x – x轴数据,列表或数组。不可省略
height – 条的高度,即要显示的数据
width – 条的宽度,默认为0.8
bottom – 条底部的y坐标,默认为None,即在0的位置
align – 条的对齐方式
‘center’ – 默认值,表示条的底部中心在x值上
‘edge’ – 若width为正数,条的底部左边缘在x值上;若width为负数,则条的底部右边缘在x值上

(11)直方图均衡化
cv2.equalizeHist(src, dst=None)
参数:
src – 输入图像,为灰度图像;彩色图像需要分通道分别均衡
dst – 均衡化后的图像,一般通过返回值输出
返回值:均衡化后的图像

(12)均值滤波
cv2.blur(src, ksize, dst=None, anchor=None, borderType=None)
参数
src – 输入图像
ksize – 模板大小,格式为(行数,列数)
anchor和borderType与cv2.filter2D相同

(13)中值滤波
cv2.medianBlur(src, ksize, dst=None)
参数:
src – 输入图像
ksize – 模板大小,为整型。中值滤波模板固定为方阵
dst – 输出图像,一般通过返回值输出
返回值:中值滤波后的图像

(14)高斯滤波
cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
参数:
src – 输入图像
ksize – 变换核大小,格式为(行,列),必须是正奇数。设置为0时,大小由sigma决定
sigmaX – X方向上的高斯核标准差
sigmaY – Y方向上的高斯核标准差;如果设为None或0,则其值与sigmaX相同
dst和borderType与cv2.Blur相同
返回值:高斯滤波后的图像

(15)双边滤波
cv2.biliteralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
参数:
src – 输入图像,必须为8位灰度图像
d – 变换核窗口大小
sigmaColor – 灰度值滤波器sigma值,即sr
sigmaSpace – 位置滤波器sigma值,即ss
dst和borderType与其它滤波函数相同
返回值:双边滤波后的图像

(16)Sobel算子
cv2.Sobel(src, ddepth, dx, dy, dst=None, ksize=None, scale=None, delta=None, borderType=None)
参数
src – 输入图像
ddepth – 输出图像的深度,设为-1时表示与原图像相同
dx, dy – 当dx=1且dy=0时求x方向的一阶导数;当dx=0且dy=1时求y方向的一阶导数
ksize – Sobel算子大小,必须为1,3,5或7。设为None时默认为3
scale – 梯度值放大比例系数,设为None时默认为1
delta – 输出图像的偏移修正值,设为None时默认为0
dst和borderType与其它函数含义相同
返回值:梯度图像,需要灰度拉伸才能正常显示

(17)拉普拉斯算子
cv2.Laplacian(src, ddepth, dst=None, ksize=None, scale=None, delta=None, borderType=None)
所有参数含义与cv2.Sobel相同
返回值:边缘图像,需要灰度拉伸

(18)Canny算子
cv2.Canny(image, threshold1, threshold2, edges=None, apertureSize=None, L2gradient=None)
参数
image – 输入图像(必须为8位灰度图像)
threshold1, threshold2 – 最小和最大灰度阈值
如果当前梯度值大于给定的threshold2 ,判断为边界;
如果当前梯度值小于threshold1则舍弃;
如果当前梯度值在给定的最大值和最小值之间,如果其周围的点是边界点,那么当前点保留,否者舍弃
edges – 输出图像, 一般通过返回值输出
apertureSize – Sobel算子大小,设为None时取默认值3
L2gradient – 计算梯度范式。设为True时采用L2范式(平方和开方),设为False时采用L1范式(绝对值之和)。默认为False

(19)结构元素获取
cv2.getStructuringElement(shape, ksize, anchor=None)
参数:
shape – 结构元素形状,有三种可取值
cv2.MORPH_RECT:矩形结构
cv2.MORPH_ELLIPSE:椭圆结构(当ksize的行列相同,即为圆形结构)
cv2.MORPH_CROSS:十字形结构
ksize – 结构元素大小,格式为(列,行)或(x, y)
anchor – 参考点位置,即进行形态学处理里的基准点位置,设为None表示取默认值(-1, -1),即结构元素中心位置
返回值:ksize的二值二维数组

(20)二值膨胀
cv2.dilate(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
参数
src – 输入图像
kernel – 结构元素,为二维数组
iterations – 重复做膨胀次数,默认为None,表示只做1次
其它参数与之前函数参数含义一致
返回值:膨胀后的图像

(21)二值腐蚀
cv2.erode(src, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
参数与返回值含义与cv2.dilate相同

(22)开闭运算
cv2. morphologyEx(src, op, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
参数:
op – 运算方式
cv2.MORPH_OPEN,表示开运算;
cv2.MORPH_CLOSE,表示闭运算;
其它参数与cv2.erode相同
返回值:开/闭运算后的图像

(23)形态学处理
cv2. morphologyEx(src, op, kernel, dst=None, anchor=None, iterations=None, borderType=None, borderValue=None)
参数:
op – 运算方式
cv2.HITMISS,表示目标探测;kernel要注意合并S1和S2
cv2.MORPH_GRADIENT,表示形态学梯度
cv2.MORPH_TOPHAT,表示Top-Hat处理
cv2.MORPH_BLACKHAT,表示Buttom-Hat处理

(24)Harris角度检测
cv2.cornerHarris(img, blockSize, ksize, k)
参数
img – 输入图像
blockSize – 窗口大小,为一个正整数,即求取角点的局部区域大小,固定为正方形区域
ksize – Sobel算子的窗口大小(因为计算过程中需要获得一阶导数),为一个正整数
k – 经验系数,取0.04到0.06之间的实数
返回值:R值数组,可通过阈值化获取角点位置

(25)SIFT关键点检测
cv2.SIFT_create(nfeatures=None, nOctaveLayers=None, contrastThreshold=None, edgeThreshold=None, sigma=None)
参数:
nfeatures – 特征点个数,默认根据评价分数计算得到
nOctaveLayers – 高斯金字塔尺度层数,默认根据图像分辨率计算
contrastThrshold – 用于过滤低对比度区域特征,值越大,特征数量越少
edgeThreshold – 用于边缘消除时判断是否边缘的基准,值越大,特征数越多
sigma – 用于高斯金字塔最底层的高斯滤波器s参数,默认为1.6

detect(image, mask)
参数
image – 输入图像
mask – 掩膜图像,必须为8位整型数组

(26)ORB关键点
cv2.ORB_create(nfeatures=None, scaleFactor=None, nlevels=None, edgeThreshold=None, firstLevel=None, WTA_K=None, scoreType=None, patchSize=None, fastThreshold=None)
参数:
nfeatures – 保留特征的最大数目,默认为500
scoreType – 衡量特征的方法,默认为Harris角点方式,可更改为FAST方法
WTA_K – 用于产生BRIEF描述子的采样点数,转为为2,可设为3或4

(27)直线检测
cv2.houghLines(image, rho, theta, threshold, lines=None, srn=None, stn=None, min_theta=None, max_theta=None)
参数
image – 8位的单通道输入图像,一般为二值图,即边缘提取后的图像
rho – r的刻度,以像素为单位。值越小,分辨率越大。一般置为1
theta – q 的刻度,以弧度为单位,描述q 的分辨率。一般置为p/180
threshold – 票数阈值,即参数空间中投票数阈值。大于该阈值的位置被认为存在直线。取值视图像大小或直线多少而定
lines – 输出直线信息,一般通过返回值输出
srn和stn – 分别是r和q的缩放因子,一般用于多尺度Hough变换。同时设为0表示不考虑缩放情况
min_theta和max_theta – 检测直线的最小和最大旋转角。min_theta默认为0,max_theta默认为p
返回值:
检测得到的直线向量,大小为N12。其中,N表示检测到的直线数目,最后的2表示二维向量(r, q ) 。r表示直线径向距离;q表示直线径向角,以弧度为单位。特别地, q为0表示垂直线,为p/2时表示水平线

(28)直线段检测
cv2.houghLinesP(image, rho, theta, threshold, lines=None, minLineLength=None, maxLineGap=None)
参数:
image, rho, theta, threshold和line的含义与houghLines一致
minLineLength – 最小线段长度,小于该长度的线段被忽略,默认为0
maxLineGap – 最大线段断开长度,小于该长度的断开会被边上,默认为0
返回值:
为N14的矩阵,其中N表示直线段条数;4表示(x1, y1, x2, y2),即直线段两端点坐标

(29)圆形检测
cv2.HoughCircles(image, method, dp, minDist=None, circles=None, param1=None, param2=None, minRadius=None, maxRadius=None)
参数
param1 – Canny算子的最大阈值,相当于cv2.Canny函数中的threshold2参数;而Canny算子的最小阈值threshold1被定为param1/2。默认为100
param2 – 累加器阈值,与houghLine中的threshold相同,决定被定为圆形的票数下限。默认为100
minRadius – 圆形最小半径。默认为0,即检测所有可能的圆形
maxRadius – 圆形最大半径。默认为0,与minRadius形成半径范围
返回值
circles – 检测到的圆形,大小为1n3。其中,n为圆形个数;3分别为圆心坐标(x, y)和半径r

(30)共生矩阵生成
feature.graycomatrix(image, distances, angles, levels=None, symmetric=False, normed=False)
参数
image – 输入图像,一般为灰度图
distances – 像素对的距离,欧氏距离,要用中括号
angles – 像素对的方向,以弧度为单位,顺时针为正,要用中括号
levels – 灰度级
symmetric – 是否实现对称统计,即同时统计(i, j)和(j, i)。默认为False
normed – 是否归一化,默认为False
返回值:4维列表(i, j, d, theta),其中(i, j)表示(f1, f2);d和theta即分别是distances和angles的长度

(31)基于共生矩阵的统计量
feature.graycoprops(P, prop='contrast’)
参数
P – 表示输入的灰度共生矩阵,格式与feature.graycomatrix的返回值一致
prop – 要计算的统计值,可取值如下:
constrast – 对比度,默认值
dissimilarity – 相异性
homogeneity – 倒数差分矩
ASM – 角二阶矩
energy – ASM的开方
correlation – 相关系数

(31)图像阈值化
cv2.threshold(src, threshold, maxval, type, dst=None)
参数:
src – 输入图像
threshold – 阈值,像素被划分为小于和大于threshold的两部分
maxval – 大于threshold的像素被置为maxval
type – 阈值化方式,有五种取值方式
cv2.THRESH_BINARY:小于threshold的像素为0, 大于为maxval
cv2.THRESH_BINARY_INV:小于threshold的像素为maxval , 大于为0
cv2.THRESH_TRUNC:小于threshold像素不变,大于threshold被设为threshold
cv2.THRESH_TOZERO:小于threshold像素不变,大于threshold被设为0
cv2.THRESH_TOZERO_INV:大于threshold像素不变,小于threshold被设为0
cv2_THESH_OTSU:实现基于OTSU阈值选取的二值化
返回值:
ret – 阈值,与threshold相同
img – 二值化后的图像,类型和大小与输入图像相同

(32)其它函数
用numpy生成矩阵
numpy.array([矩阵内容])
矩阵拼接
numpy.hstack([matrix1, matrix2, …]):水平方向堆叠矩阵,要求矩阵行数相同;
numpy.vstack([matrix1, matrix2, …]):垂直方向堆叠矩阵,要求矩阵列数相同;
numpy.dstack([matrix1, matrix2, …]):深度方向堆叠矩阵,要求矩阵行列相同。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号