【问题标题】:What does the cv::Scalar type mean?cv::Scalar 类型是什么意思?
【发布时间】:2014-11-08 23:21:00
【问题描述】:

我必须找到 Mat 中元素的总和,OpenCV 的 sum 函数返回一个 cv::Scalar 但我应该如何解释它?

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    使用cv::Scalar是因为图像可以是多通道的。 因此,白色表示为:

    cv::Scalar(255,255,255);
    

    要访问特定元素,您只需使用[] operator

    cv::Scalar myWhite(255,255,255);
    cout << myWhite[0] << endl;
    

    对于总和,每个通道将代表该特定通道的总和。

    【讨论】:

    • 所以它只是一个数组包装器?
    • 没错,你可以把它看成一个数组。或者作为一个固定大小的向量更好(在标量的情况下大小 == 4,因为图像通常有 4 个通道 R G B A)。
    • 所以白色是 (255,255,255,255) ;)
    • @Micka:实际上默认值允许你不指定:)
    • 还有一个问题,元素的类型是自动计算的还是总是 uchar ?
    猜你喜欢
    • 2015-02-16
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2016-09-15
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多