我在下面的代码中有一个错误:-
int main() {
cv::Mat image = imread("file.jpg", CV_LOAD_IMAGE_GRAYSCALE);
uint8_t* pixelPtr = (uint8_t*)image.data;
int cn = image.channels();
for(int i = 0; i < image.rows; i++)
{
for(int j = 0; j < image.cols; j += cn)
{
typedef Scalar_<uint8_t> bgrPixel;
bgrPixel.val[0] = pixelPtr[i*image.cols*cn + j*cn + 0]; // B
bgrPixel.val[1] = pixelPtr[i*image.cols*cn + j*cn + 1]; // G
bgrPixel.val[2] = pixelPtr[i*image.cols*cn + j*cn + 2]; // R
// do somethin
}
}
}
VS10 强调 val[0] 并表示非静态成员引用必须与特定对象相关。但它是 - 它与 bgrPixel 相关,不是吗?