2

私は次のように作成されたOpenCVイメージを持っています:

cv::Mat img(XN_VGA_Y_RES, XN_VGA_X_RES, CV_64FC3, cv::Scalar(0));

どうすればそのすべてのピクセルにアクセスできますか?

私は試した:

for (int x=0; x < XN_VGA_X_RES; x++) {
    for (int y=0; y < XN_VGA_Y_RES; y++) {
        img.at<double>(y,x) = 1;
    }
}

ただし、この方法で行うと、画像の3分の1だけが白になります。これは、画像に3つのチャネルがあるためだと思いますが、どうすればそれらすべてにアクセスできますか?img.at<double[3]>(y,x)やなど色々試してみimg.at<cv::Vec3f>(y,x)ましたが、うまくいかないようです。

4

1 に答える 1

4

これを試して:

img.at<cv::Vec3d>(y, x)[0] = 1;
img.at<cv::Vec3d>(y, x)[1] = 1;
img.at<cv::Vec3d>(y, x)[2] = 1;
于 2012-07-17T18:29:49.323 に答える