我是简历的新手,我想出一个问题。 我想创建一个渐变的灰色条(从黑色到白色)。
所以我初步了一个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)设置的值在第二行的开头出现一个像素。
救救我! 问候!
答案 0 :(得分:1)
如果矩阵的类型为CV_8UC1,则每个元素的大小为一个字节,您应该使用.at<uchar>
或类似字符,而不是.at<int>
。
虽然这不是你的问题,但你最后可能会对行和列感到困惑,因为你的Mat构造函数需要nRows,nCols
,这与x,y