我正在学习使用opencv在Mat上迭代,正如本教程所述,我们可以使用MatIterator_来迭代Mat。对于3通道uchar图像,我们可以使用MatIterator_<Vec3b>,如下所示:
MatIterator_<Vec3b> it, end;
for( it = I.begin<Vec3b>(), end = I.end<Vec3b>(); it != end; ++it)
{
//do any iteration stuff
}但我不确定它是否能在3通道浮点数(32FC3) Mat上工作?
Vec3b的确切定义是什么?
谢谢!
发布于 2014-10-01 03:50:18
如果使用Vec3f,它将运行得很好:
MatIterator_<Vec3f> it, end;
for( it = I.begin<Vec3f>(), end = I.end<Vec3f>(); it != end; ++it)
{
//do any iteration stuff
}原因是Vec3f和Vec3b共享相似结构
typedef Vec<uchar, 3> Vec3b;
typedef Vec<float, 3> Vec3f;https://stackoverflow.com/questions/26130058
复制相似问题