为什么cv :: Dilate的第三个参数失败了?

时间:2011-03-20 17:52:44

标签: image-processing opencv

我正在测试openCV2.2中的erode和dilate函数,但是当我通过以下行时,编译因第3个参数而失败:

dilate(gscaleImage, gscaleImage, 0, 18 );

任何人都可以为我解释这一点,因为这是他们在例子中编码的方式。 感谢

2 个答案:

答案 0 :(得分:1)

来自OpenCV文档(对不起格式化):

  

void dilate(const Mat& src,Mat& dst,const Mat& element,Point anchor = Point(-1,-1),int iterations = 1,int borderType = BORDER_CONSTANT,const Scalar& borderValue = morphologyDefaultBorderValue() )

第三个参数是const Mat& element,绝对不是像int那样的0.你到底想要完成什么?

对于迭代,我会这样做:

dilate(gscaleImage, gscaleImage, 0, iterations = 18);

答案 1 :(得分:1)

OpenCV具有C和C ++接口。你正在调用C ++函数cv :: dilate,但是从参数来看,它实际上是指来自旧式C接口的cvDilate。