cv:Mat,设置每隔一个像素

时间:2013-12-10 21:16:44

标签: mat computer-vision

我是简历的新手,我想出一个问题。 我想创建一个渐变的灰色条(从黑色到白色)。

所以我初步了一个Mat:

Mat fadedgrey=Mat(20,256,CV_8UC1);

当我写像素值时:

for(int x=0;x<20;x++){
   for(int y=0;y<256;y++){
    fadedgrey.at<int>(x,y)=y;}}

结果如下: 只写了每一列,但我认为CV_8UC1是单通道,而不是双通道Mat。

例如,在位置(1,129)设置的值在第二行的开头出现一个像素。

救救我! 问候!

1 个答案:

答案 0 :(得分:1)

如果矩阵的类型为CV_8UC1,则每个元素的大小为一个字节,您应该使用.at<uchar>或类似字符,而不是.at<int>

虽然这不是你的问题,但你最后可能会对行和列感到困惑,因为你的Mat构造函数需要nRows,nCols,这与x,y

相反。