1.adaptiveThreshold 将自适应阈值应用于数组。
- C++:
adaptiveThreshold
(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
- C:
cvAdaptiveThreshold
(const CvArr* src, CvArr* dst, double max_value, int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C, int threshold_type=CV_THRESH_BINARY, int block_size=3, double param1=5 )
Parameters: |
|
---|
2.cvtColor 将图像从一种色域转换为另一种色域
- C++:
cvtColor
(InputArray src, OutputArray dst, int code, int dstCn=0 )
- C:
cvCvtColor
(const CvArr* src, CvArr* dst, int code)
|
|
---|
常见的色域变换:RGB <--> GRAY ( CV_BGR2GRAY, CV_RGB2GRAY, CV_GRAY2BGR, CV_GRAY2RGB
)
RGB CIE XYZ.Rec 709 with D65 white point ( CV_BGR2XYZ, CV_RGB2XYZ, CV_XYZ2BGR, CV_XYZ2RGB
)
RGB YCrCb JPEG (or YCC) ( CV_BGR2YCrCb, CV_RGB2YCrCb, CV_YCrCb2BGR, CV_YCrCb2RGB
)
RGB HSV ( CV_BGR2HSV, CV_RGB2HSV, CV_HSV2BGR, CV_HSV2RGB
)
RGB HLS ( CV_BGR2HLS, CV_RGB2HLS, CV_HLS2BGR, CV_HLS2RGB
).
RGB CIE L*a*b* ( CV_BGR2Lab, CV_RGB2Lab, CV_Lab2BGR, CV_Lab2RGB
).
- RGB CIE L*u*v* (
CV_BGR2Luv, CV_RGB2Luv, CV_Luv2BGR, CV_Luv2RGB
). - Bayer RGB (
CV_BayerBG2BGR, CV_BayerGB2BGR, CV_BayerRG2BGR, CV_BayerGR2BGR, CV_BayerBG2RGB, CV_BayerGB2RGB, CV_BayerRG2RGB,CV_BayerGR2RGB
).
3.distanceTransform. 计算源图像的每个像素到最接近的零像素的距离.
- C++:
distanceTransform
(InputArray src, OutputArray dst, int distanceType, int maskSize)
- C++:
distanceTransform
(InputArray src, OutputArray dst, OutputArray labels, int distanceType, int maskSize, int labelType=DIST_LABEL_CCOMP )
- C:
cvDistTransform
(const CvArr* src, CvArr* dst, int distance_type=CV_DIST_L2, int mask_size=3, const float* mask=NULL, CvArr* labels=NULL, int labelType=CV_DIST_LABEL_CCOMP )
Parameters: |
|
---|
这个函数的具体用法可以参考例子opencv_source_code/samples/cpp/distrans.cpp
4.floodFill.用给定的颜色填充连接的组件
- C++:
floodFill
(InputOutputArray image, Point seedPoint, Scalar newVal, Rect* rect=0, Scalar loDiff=Scalar(), Scalar upDiff=Scalar(), int flags=4 )
- C++:
floodFill
(InputOutputArray image, InputOutputArray mask, Point seedPoint, Scalar newVal, Rect* rect=0, Scalar loDiff=Scalar(), Scalar upDiff=Scalar(), int flags=4 )
- C:
cvFloodFill
(CvArr* image, CvPoint seed_point, CvScalar new_val, CvScalar lo_diff=cvScalarAll(0), CvScalar up_diff=cvScalarAll(0), CvConnectedComp* comp=NULL, int flags=4, CvArr* mask=NULL )
Parameters: |
|
---|
参考实例:opencv_source_code/samples/cpp/ffilldemo.cpp
5.integral 计算图像的积分。
- C++:
integral
(InputArray src, OutputArray sum, int sdepth=-1 )
- C++:
integral
(InputArray src, OutputArray sum, OutputArray sqsum, int sdepth=-1 )
- C++:
integral
(InputArray src, OutputArray sum, OutputArray sqsum, OutputArray tilted, int sdepth=-1 )
-
Parameters: - image – 输入图像,格式为W×H,8位或浮点数(32f或64f)。
- sum – 整数图像,格式为(W + 1)*(H + 1),32位整数或浮点数(32f或64f)。
- sqsum – 平方像素值的积分图像; 它是(W + 1)*(H + 1),双精度浮点(64f)数组。
- tilted – 旋转45度的图像的积分; 它是(W + 1)*(H + 1)数组,其数据类型与sum相同。
- sdepth – 积分图像和倾斜的积分图像所需的深度CV_32S,CV_32F或CV_64F。
6.threshold 将固定级别阈值应用于每个数组元素。
- C++:
threshold
(InputArray src, OutputArray dst, double thresh, double maxval, int type)
Parameters: - src – 输入数组(单通道,8位或32位浮点)。
- dst – 与src具有相同大小和类型的输出数组。
- thresh – 阈值。
- maxval – 与THRESH_BINARY和THRESH_BINARY_INV阈值类型一起使用的最大值。
- type – 阈值类型.
7.watershed 使用分界线算法执行基于标记的图像分割。
- C++:
watershed
(InputArray image, InputOutputArray markers)
- C:
cvWatershed
(const CvArr* image, CvArr* markers)
Parameters: - image – 输入8位3通道图像。
- markers – 输入/输出的32位单通道图像(图)。 它的大小应与image相同。
应用实例:opencv_source_code/samples/cpp/watershed.cpp
8.grabCut GrabCut图像分割算法。
- C++:
grabCut
(InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount, int mode=GC_EVAL )
Parameters: - img – 8位三通道图像
- mask – 输入/输出8位单通道掩码。当模式设置为GC_INIT_WITH_RECT时,该掩码由函数初始化。其元素可能具有以下值之一:
- GC_BGD定义了明显的背景像素。
-
GC_FGD定义了明显的前景(对象)像素。
-
GC_PR_BGD定义可能的背景像素。
-
GC_PR_FGD定义可能的前景像素。
- rect – 包含分段对象的ROI。 ROI外部的像素被标记为“明显背景”。仅在mode == GC_INIT_WITH_RECT时使用该参数。
- bgdModel – 背景模型的临时数组。处理同一图像时,请勿对其进行修改。
- fgdModel – 前景模型的临时数组。处理同一图像时,请勿对其进行修改。
- iterCount – 算法在返回结果之前应该进行的迭代次数。请注意,可以通过使用mode == GC_INIT_WITH_MASK或mode == GC_EVAL进行进一步调用来完善结果。
- mode – 操作模式可能是以下之一:
-
GC_INIT_WITH_RECT该函数使用提供的矩形初始化状态和掩码。之后,它将运行算法的iterCount迭代。
- GC_INIT_WITH_MASK该函数使用提供的掩码初始化状态。请注意,可以组合使用GC_INIT_WITH_RECT和GC_INIT_WITH_MASK。然后,使用GC_BGD自动初始化ROI之外的所有像素。
- GC_EVAL该值表示该算法应重新开始。
-
应用实例:opencv_source_code/samples/cpp/grabcut.cpp