OpenCV 32位图像超出界限错误?

时间:2013-11-18 17:17:02

标签: c++ opencv

我确定当我发现我在这里做错了什么时,我会打击自己,但为什么这会在OpenCV 2.4.6中引发异常?

cv::Mat img(240, 320, CV_8UC4);
img.at<uint32_t>(180, 180) = 0x00000000;

设置像素值的第二行抛出异常。这是一个四通道图像,我在边界内很好地访问它。我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

您的垫子类型为CV_8UC4,因此,这是4个通道á8个字节。

正确访问它将是:

img.at<cv::Vec4b>(180,180) = cv::Vec4b(0,0,0,0);