如果我不使用任何命名空間我的代碼工作得很好,但是當我嘗試使用方法與命名空間是這樣的:什麼是OpenCV HighGUI命名空間?
cv::nameOfMethodInHighGUI()
編譯器告訴我,cv
沒有叫這樣的成員方法。
所以我以爲highgui.h
和cv.h
有不同的名稱空間,我說得對嗎?
任何人都可以告訴我應該用什麼命名空間來調用頭文件highgui.h
中的方法嗎?
如果我不使用任何命名空間我的代碼工作得很好,但是當我嘗試使用方法與命名空間是這樣的:什麼是OpenCV HighGUI命名空間?
cv::nameOfMethodInHighGUI()
編譯器告訴我,cv
沒有叫這樣的成員方法。
所以我以爲highgui.h
和cv.h
有不同的名稱空間,我說得對嗎?
任何人都可以告訴我應該用什麼命名空間來調用頭文件highgui.h
中的方法嗎?
所有opencv函數都參與命名空間cv!
因此,爲了顯示你可以使用CV :: imshow(上OpenCV的> 2)
看見highgui.h
的圖像,我有以下想法: 也許您不小心混合了老式和新OpenCV2包括頭文件(都與OpenCV2 +庫一起提供)。
我建議僅使用
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
他們在cv
命名空間中的每個函數。
這是我的想法,但如果我打電話給這樣的方法: cv :: cvShowImage(imagePath.c_str(),frame);我得到這個編譯器錯誤: 'cvShowImage'不是'cv'的成員 – Matteo 2012-02-15 10:34:20
這是因爲它現在是'cv :: imshow()',如文檔(for 2.3)中所述:http://opencv.itseez .com/modules/highgui/doc/user_interface.html #imshow – 2012-02-15 10:39:29
是的,但是如果您使用命名空間,功能的「cv」前綴將會消失!並且一些功能被重新命名。 – 2012-02-15 10:39:51