使用CV_MAT_ELEM修改CvMat *像素

时间:2013-03-08 17:29:46

标签: c opencv

我正在尝试创建用于Filter2D函数的内核。该函数期望内核采用CvMat格式。

如何访问CvMat的元素?我有以下代码,它给出了编译器错误。

inline void plot(CvMat* mat, int x, int y, float c)
//plot the pixel at (x, y) with brightness c (where 0 ≤ c ≤ 1)
{
    CV_MAT_ELEM(mat,float,y,x) = MIN(c,1); //The error occurs at this line
}

我收到以下错误:

  

错误C2228:'。data'的左边必须有class / struct / union   错误C2228:'。ptr'的左边必须有class / struct / union   错误C2228:'.step'的左边必须有class / struct / union

我做错了什么?

1 个答案:

答案 0 :(得分:0)

解决:取消引用传递给宏的指针:

CV_MAT_ELEM(*mat,float,y,x) = MIN(c,1);