我测试了侵蚀和openCV2.2扩张的功能,但编译失败,因为当我通过以下行的第三个论点:为什么cv :: Dilate失败的第三个参数?
dilate(gscaleImage, gscaleImage, 0, 18);
任何人都可以摆脱光这对我来说请这是怎么了他们已经被编码在例子中。 由于
我测试了侵蚀和openCV2.2扩张的功能,但编译失败,因为当我通过以下行的第三个论点:为什么cv :: Dilate失败的第三个参数?
dilate(gscaleImage, gscaleImage, 0, 18);
任何人都可以摆脱光这对我来说请这是怎么了他们已经被编码在例子中。 由于
OpenCV的C和C++接口。你正在调用C++函数cv :: dilate,但根据参数来判断,它实际上是从旧式C接口开始的cvDilate。
从OpenCV的文档(遗憾的格式):
空隙扩张(常量垫& SRC,垫& DST,常量垫&元件,点锚=点(-1,-1 ),INT迭代= 1,INT borderType = BORDER_CONSTANT,常量标量& borderValue = morphologyDefaultBorderValue())
第三个参数是const Mat& element
,这绝对不是int
就像0.你究竟想完成什么?
对于迭代,我会做:
dilate(gscaleImage, gscaleImage, 0, iterations = 18);
我正在学习openCV函数以及它们如何工作,所以我只想做一个简单的图像扩张。在找到该函数的正确引用之后(我一直在查看C版本时并未意识到),现在我将尝试修复它并查看它是否有效。你的第三个参数也不会因为我使用C++函数而失败吗? – 2011-03-20 22:08:33
对不起,我使用Python编码。我不知道C++不接受这样的默认参数... – Blender 2011-03-21 00:20:20