OPENCV图像处理的函数说明

更新时间:2023-07-20 18:24:26 阅读: 评论:0

窗体顶端
窗体底端
窗体顶端
心理自虐症
窗体底端
Open Source Computer Vision Library
论坛
商业
专题
讲座
例程
广宣安装
常见问题
函数说明
Cv图像处理
Wikipedia,自由的百科全书
注意:本章描述图像处理和分析的一些函数。大多数函数都是针对两维象素数组的,这里,我们称这些数组为“图像”,但是它们不一定非得是IplImage 结构,也可以是CvMat或者CvMatND结构。
目录舞蹈的分类
[隐藏]
1 梯度、边缘和角点
o 1.1 Sobel
o 1.2 Laplace
o 1.3 Canny
o 1.4 PreCornerDetect
o 1.5 CornerEigenValsAndVecs
o 1.6 CornerMinEigenVal
o 1.7 CornerHarris
o 1.8 FindCornerSubPix
o 1.9 GoodFeaturesToTrack
2 采样、插值和几何变换
o 2.1 InitLineIterator
o 2.2 SampleLine
o 2.3 GetRectSubPix
o 2.4 GetQuadrangleSubPix
o 2.5 Resize
o 2.6 WarpAffine
o 2.7 GetAffineTransform
o 2.8 2DRotationMatrix
o 2.9 WarpPerspective
o 2.10 WarpPerspectiveQMatrix
o 2.11 GetPerspectiveTransform
o 2.12 Remap
o 2.13 LogPolar
3 形态学操作
o 3.1 CreateStructuringElementEx
o 3.2 ReleaStructuringElement
o 3.3 Erode
o 3.4 Dilate
o 3.5 MorphologyEx
4 滤波器与色彩空间变换
o 双子座特点4.1 Smooth
o 4.2 Filter2D
o 4.3 CopyMakeBorder
o 4.4 Integral
o 4.5 CvtColor
o 4.6 Threshold
o 4.7 AdaptiveThreshold
5 金字塔及其应用
o 5.1 PyrDown
o 5.2 PyrUp
6 连接部件
o 6.1 CvConnectedComp
o 6.2 FloodFill
o 6.3 FindContours
o 6.4 StartFindContours
o 6.5 FindNextContour
o 6.6 SubstituteContour
o 6.7 EndFindContours
o 6.8 PyrSegmentation
o 6.9 PyrMeanShiftFiltering
o 6.10 Watershed
7 图像与轮廓矩
o 7.1 Moments
o 7.2 GetSpatialMoment
o 7.3 GetCentralMoment
o 7.4 GetNormalizedCentralMoment
o 7.5 GetHuMoments
8 特殊图像变换
o 8.1 HoughLines
o 8.2 HoughCircles
o 8.3 DistTransform
o 8.4 Inpaint
9 直方图
o 9.1 CvHistogram
o 9.2 CreateHist
o 9.3 SetHistBinRanges
o 9.4 ReleaHist
o 9.5 ClearHist
o 9.6 MakeHistHeaderForArray
o 9.7 QueryHistValue_1D
o 9.8 GetHistValue_1D
o 9.9 GetMinMaxHistValue
o 9.10 NormalizeHist
o 9.11 ThreshHist
o 9.12 CompareHist
o 9.13 CopyHist
o 9.14 CalcHist
o 9.15 CalcBackProject
o 9.16 CalcBackProjectPatch
o 9.17 CalcProbDensity
o 9.18 EqualizeHist
10 匹配
o 10.1 MatchTemplate
o 10.2 MatchShapes
o 10.3 CalcEMD2
[编辑]
梯度、边缘和角点
[编辑]
Sobel
使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像差分
void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 );
src
输入图像.
dst
输出图像.
xorder
x 方向上的差分阶数
yorder
y 方向上的差分阶数
aperture_size
扩展 Sobel 核的大小,必须是 1, 3, 5 7 除了尺寸为 1 其它情况下, aperture_size ×aperture_size 可分离内核将用来计算差分。对 aperture_size=1的情况, 使用 3x1 1x3 内核 (不进行高斯平滑操作)。这里有一个特殊变量 CV_SCHARR (=-1),对应 3x3 Scharr 滤波器,可以给出比 3x3 Sobel 滤波更精确的结果。Scharr 滤波器系数是:
x-方向 或矩阵转置后对 y-方向。
函数 cvSobel 通过对图像用相应的内核进行卷积操作来计算图像差分:
由于Sobel 算子结合了 Gaussian 平滑和微分,所以,其结果或多或少对噪声有一定的鲁棒性。通常情况,函数调用采用如下参数 (xorder=1, yorder=0, aperture_size=3) (xorder=0, yorder=1, aperture_size=3) 来计算一阶 x- y- 方向的图像差分。第一种情况对应:
核。
第二种对应:
或者
核的选则依赖于图像原点的定义 (origin 来自 IplImage 结构的定义)。由于该函数不进行图像尺度变换,所以和输入图像(数组)相比,输出图像(印度属于什么人种数组)的元素通常具有更大的绝对数值(译者注:即像素的位深)。为防止溢出,当输入图像是 8 位的,要求输出图像是 16 位的。当然可以用函数 cvConvertScale cvConvertScaleAbs 把运算结果(dst)转换为 8 位的。除了一根羽毛8-位图像,函数也接受 32- 浮点数图像。所有输入和输出图像都必须是单通道的,并且具有相同的图像尺寸或者ROI尺寸。
[编辑]
Laplace
计算图像的 Laplacian 变换
void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
src
输入图像.
dst
输出图像.
aperture_size
核大小 ( cvSobel 中定义一样).
函数 cvLaplace 计算输入图像的 Laplacian变换,方法是先用 sobel 算子计算二阶 x- y- 差分,再求和:
aperture_size=1 芒果英语单词则给出最快计算结果,相当于对图像采用如下内核做卷积:
类似于 cvSobel 函数,该函数也不作图像的尺度变换,所支持的输入、输出图像类型的组合和cvSobel一致。
[编辑]
Canny
采用 Canny 算法做边缘检测
void cvCanny( const CvArr* image, CvArr* edges, double threshold1,
              double threshold2, int aperture_size=3 );
image
单通道输入图像.
edges
单通道存储边缘的输出图像
threshold1
第一个阈值
threshold2
第二个阈值
aperture_size
Sobel 算子内核大小 ( cvSobel).
函数 cvCanny 采用 CANNY 算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。
注意事项:cvCanny只接受单通道图像作为输入。
外部链接:经典的canny自调整阈值算法的一个opencv的实现见在OpenCV中自适应确定canny算法的分割门限
[编辑]
PreCornerDetect
计算用于角点检测的特征图,
void cvPreCornerDetect( const CvArr* image, CvArr* corners, int aperture_size=3 );
image
输入图像.
corners
保存候选角点的特征图
aperture_size
Sobel 算子的核大小(cvSobel).
函数 cvPreCornerDetect 计算函数 其中 表示一阶图像差分, 表示二阶图像差分。 角点被认为是函数的局部最大值:
// 假设图像格式为浮点数
IplImage* corners = cvCloneImage(image);
IplImage* dilated_corners = cvCloneImage(image);
IplImage* corner_mask = cvCreateImage( cvGetSize(image), 8, 1 );
cvPreCornerDetect( image, corners, 3 );
cvDilate( corners, dilated_corners, 0, 1 );
cvSub( corners, dilated_corners, corners );
cvCmpS( corners, 0, corner_mask, CV_CMP_GE );
cvReleaImage( &corners );
cvReleaImage( &dilated_corners );
[编辑]
CornerEigenValsAndVecs
计算图像块的特征值和特征向量,用于角点检测
void cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,
                              int block_size, int aperture_size=3 );
image
输入图像.
eigenvv
保存结果的数组。必须比输入图像宽 6 倍。
block_size
邻域大小 (见讨论).
aperture_size 亿邮
Sobel 算子的核尺寸( cvSobel).

本文发布于:2023-07-20 18:24:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1089431.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:FLAC3D常用命令
下一篇:PFC常用命令
标签:图像   输入   差分   计算   边缘   函数   输出
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图