我正在测试openCV2.2中的erode和dilate函数,但是当我通过以下行时,编译因第3个参数而失败:
dilate(gscaleImage, gscaleImage, 0, 18 );
任何人都可以为我解释这一点,因为这是他们在例子中编码的方式。 感谢
答案 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。