单个通道的平均值

Lak*_*nan 3 c++ opencv image-processing computer-vision

我将图像从rgb转换为YUV.现在我想找到单独的亮度通道的平均值.你能告诉我如何实现这个目标吗?此外,有没有办法确定图像包含多少个频道?

lig*_*ist 16

你可以这样做:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>

using namespace cv;

int main(void)
{
    vector<Mat> channels;
    Mat img = imread("Documents/forest.jpg");
    split(img, channels);
    Scalar m = mean(channels[0]);
    printf("%f\n", m[0]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)