checkVector( )函数

参考链接:
https://docs.opencv.org/master/d3/d63/classcv_1_1Mat.html#a39541d4dbd7fafbfae93f1737e51ffbc (Mat类参考手册)
https://www.cnblogs.com/drunknbeard/p/9671451.html(checkVector()源码实现)

checkVector是opencv里Mat类的成员函数,用于返回符合要求的矩阵中的元素个数。
下列示例代码中Mat类对象定义的含义为mat ( rows, columns, channels ),即(行数,列数,通道数)

  1. 行数或列数为1,且通道数为1的情况下,checkVector输入参数为1时返回元素个数20,输入其他参数值时返回-1。
    cv::Mat mat(20, 1, CV_32FC1);
    int n = mat.checkVector(1); // n=20
    cv::Mat mat(1, 20, CV_32FC1);
    int n = mat.checkVector(1); // n=20

  2. 通道数为2且行数或列数为1,或者通道数为1且行数或列数为2的情况下,checkVector输入参数为2时返回元素个数20,输入其他参数值时返回-1。
    cv::Mat mat(20, 1, CV_32FC2);
    int n = mat.checkVector(2); // n=20
    cv::Mat mat(1, 20, CV_32FC2);
    int n = mat.checkVector(2); // n=20
    cv::Mat mat(20, 2, CV_32FC1);
    int n = mat.checkVector(2); // n=20
    cv::Mat mat(2, 20, CV_32FC1);
    int n = mat.checkVector(2); // n=20

  3. 情况同2,不做赘述。
    cv::Mat mat(20, 1, CV_32FC3);
    int n = mat.checkVector(3); // n=20
    cv::Mat mat(1, 20, CV_32FC3);
    int n = mat.checkVector(3); // n=20
    cv::Mat mat(20, 3, CV_32FC1);
    int n = mat.checkVector(3); // n=20
    cv::Mat mat(3, 20, CV_32FC1);
    int n = mat.checkVector(2); // n=20

综上,checkVector能正确返回矩阵中的元素个数值时,必然满足:

  1. 行数、列数和通道数中必有一个为1;
  2. 其余二者必有一个与checkVector的输入参数一致。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值