我測試了侵蝕和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