如何使用xf:Mat进行逐像素计算?

时间:2019-01-24 15:18:54

标签: vivado-hls

我正在尝试将我的opencv代码迁移到Xilinx xfopencv。我想对两个输入图像进行按像素划分。c(x,y)= a(x,y)/ b(x,y)

如何使用xfOpenCv获得c ??? 在OpenCv中,我可以直接执行a / b,但是xfOpenCv没有像素宽分割功能。我试图自己定义除法函数。

但我收到错误:“ []”无法解决 那么,如何使用xf:Mat进行逐像素计算呢? 你能举个例子吗?

error: '[]' could not be resolved

xf::Mat<XF_8UC1, HEIGHT, WIDTH, XF_NPPC1> a;
xf::Mat<XF_8UC1, HEIGHT, WIDTH, XF_NPPC1> b;
xf::Mat<XF_8UC1, HEIGHT, WIDTH, XF_NPPC1> c;

for (int i = 0; i < HEIGHT; i++)
   for (int j = 0; j < WIDTH; j++)
   {
      c[i][j] = a[i][j]/b[i][j];
   }

1 个答案:

答案 0 :(得分:1)

使用“ .data”指针访问xf :: Mat对象的每个像素值。

for (int i = 0; i < HEIGHT; i++){
 for (int j = 0; j < WIDTH; j++){
      c.data[i*WIDTH+j] = a.data[i*WIDTH+j] / b.data[i*WIDTH+j];
}

}