3

画像をRGBからYUVに変換しました。ここで、輝度チャネルのみの平均値を見つけたいと思います。どうすればこれを達成できるか教えていただけませんか。さらに、画像がいくつのチャンネルで構成されているかを判断する方法はありますか?

4

2 に答える 2

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;
}
于 2013-01-16T01:45:38.487 に答える
3

Image.channels()は、任意の画像のチャンネル数を示します。OpenCVのドキュメントを参照してください。

複数のチャネルには、次のようにアクセスできます。

        img.at<Vec3b>(i,j)[0] //Y
        img.at<Vec3b>(i,j)[1] //U
        img.at<Vec3b>(i,j)[2] //V
于 2013-01-16T01:23:24.953 に答える