CV_EXPORTS_AS(distanceTransformWithLabels)
void distanceTransform(
InputArray src, //输入图像,数据类型为 CV_8U 的单通道图像
OutputArray dst, //输出图像,与输入图像具有相同的尺寸,数据类型为 CV_8U 或 CV_32F 的单通道图像
OutputArray labels, //二维的标签数组(离散 Voronoi 图),与输入图像具有相同的尺寸,数据类型为 CV_32S 的单通道数据
int distanceType, //选择计算两个像素之间的距离方法的标志,其常用的距离度量方法在下方给出
int maskSize, //距离变换掩码矩阵尺寸,参数可以选择的尺寸为 DIST_MASK_3(3x3)和 DIST_MASK_5(5x5)
int labelType = DIST_LABEL_CCOMP //要构建的标签数组的类型
);
DIST_USER = -1, //自定义距离
DIST_L1 = 1, //街区距离
DIST_L2 = 2, //欧式距离
DIST_C = 3, //棋盘距离
DIST_L12 = 4, //
DIST_FAIR = 5, //
DIST_WELSCH = 6, //
DIST_HUBER = 7 //
DIST_LABEL_CCOMP = 0, 输入图像中每个连接的 0 像素(以及最接近连接区域的所有非零像素)都将被分配为相同的标签
DIST_LABEL_PIXEL = 1 输入图像中每个 0 像素(以及最接近它的所有非零像素)都有自己的标签
该函数用于实现图像的距离变换,即统计图像中所有像素距离 0 像素的最小距离。
CV_EXPORTS_W void distanceTransform(
InputArray src,
OutputArray dst,
int distanceType,
int maskSize,
int dstType=CV_32F
);
由于 distanceTransform 函数是计算图像中非零像素距离 0 像素的最小距离,而图像中 0 像素表示黑色,因此,为看保证能够清楚地观察到距离变换的结果,不建议使用尺寸过小或者黑色区域较多的图像。
CV_EXPORTS_W void minMaxLoc(
InputArray src, //需要寻找最大值和最小值的图像或者矩阵,要求必须是单通道矩阵
CV_OUT double* minVal, //图像或者矩阵中的最小值
CV_OUT double* maxVal = 0, //图像或者矩阵中的最大值
CV_OUT Point* minLoc = 0, //图像或者矩阵中的最小值在矩阵中的坐标
CV_OUT Point* maxLoc = 0, //图像或者矩阵中的最大值在矩阵中的坐标
InputArray mask = noArray()
);
CV_EXPORTS_W void resize(
InputArray src, //输入图像
OutputArray dst, //输出图像,图像的数据类型与 src 相同
Size dsize, //输出图像的尺寸
double fx = 0, //水平轴的比例因子,如果将水平轴变为原来的两倍,则赋值为2
double fy = 0, //垂直轴的比例因子,如果将垂直轴变为原来的两倍,则赋值为2
int interpolation = INTER_LINEAR //插值方法的标志
);
INTER_NEAREST = 0, 最近邻插值法
INTER_LINEAR = 1, 双线性插值法
INTER_CUBIC = 2, 双三次插值
INTER_AREA = 3, 使用像素区域关系重新采样,首选用于图像缩小,图像放大时效果与 INTER_NEAREST 相似
INTER_LANCZOS4 = 4, Lanczos 插值法
INTER_MAX = 7, 位精确双线性插值法
WARP_FILL_OUTLIERS = 8, 用掩码进行插值
该函数用来实现将已有图像转换成指定数据类型的图像
void cv::Mat::convertTo(
OutputArray m, //转换类型后输出的图像
int rtype, //转换图像的数据类型
double alpha=1, //转换过程中的缩放因子
double beta=0 //转换过程中的偏置因子
) const;
CV_EXPORTS_W double threshold(
InputArray src, //待二值化的图像,图像只能是 CV_8U 和 CV_32F 两种数据类型。对于图像通道数目的要求与选择的二值化方法相关
OutputArray dst, //二值化后的图像,与输入图像具有相同的尺寸、数据类型和通道数
double thresh, //二值化的阈值
double maxval, //二值化过程的最大值,它只在 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 两种二值化方法中才使用
int type //选择图像二值化的标志
);
该函数是众多二值化 方法的集成,所有的方法都实现了一个功能,就是给定一个阈值,计算所有像素灰度值与这个阈值关系,得到最终的比较结果。
函数中有些阈值比较方法输出结果的灰度值并不是二值的,二是具有一个取值范围,不过为了体现其常用的功能,我们仍然称其为二值化函数或者阈值比较函数。
CV_THRESH_BINARY =0, 灰度值大于阈值的为最大值,其他值为0
CV_THRESH_BINARY_INV =1, 灰度值大于阈值的为0,其他值为最大值
CV_THRESH_TRUNC =2, 灰度值大于阈值的为阈值,其他值不变
CV_THRESH_TOZERO =3, 灰度值大于阈值的不变,其他值为0
CV_THRESH_TOZERO_INV =4, 灰度值大于阈值的为0,其他值不变
CV_THRESH_MASK =7,
CV_THRESH_OTSU =8,
CV_THRESH_TRIANGLE =16