我刚开始尝试opencv。并且已经在我的另一台计算机上成功运行程序(有两台计算机)。
我已经按照与已成功构建的计算机相同的安装步骤进行操作,但在我cmake
和make
构建之后,它无法提示下面的错误消息该项目。
在官方网站上测试此示例: http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#code
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp:11:22: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
char* image_window = "Source Image";
^
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp:12:23: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
char* result_window = "Result window";
^
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp: In function ‘int main(int, char**)’:
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp:28:30: error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope
namedWindow( image_window, CV_WINDOW_AUTOSIZE );
^
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp:32:26: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
char* trackbar_label = "Method: \n 0: SQDIFF \n 1: SQDIFF NORMED \n 2: TM CCORR \n 3: TM CCORR NORMED \n 4: TM COEFF \n 5: TM COEFF NORMED";
^
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp: In function ‘void MatchingMethod(int, void*)’:
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp:68:24: error: ‘CV_TM_SQDIFF’ was not declared in this scope
if( match_method == CV_TM_SQDIFF || match_method == CV_TM_SQDIFF_NORMED )
^
/home/howard/Documents/opencv/opencv-sample/template_match/template_match.cpp:68:56: error: ‘CV_TM_SQDIFF_NORMED’ was not declared in this scope
if( match_method == CV_TM_SQDIFF || match_method == CV_TM_SQDIFF_NORMED )
^
make[2]: *** [CMakeFiles/template_match.dir/template_match.cpp.o] Error 1
make[1]: *** [CMakeFiles/template_match.dir/all] Error 2
make: *** [all] Error 2
有人知道发生了什么,我该如何解决?
答案 0 :(得分:2)
我发现了问题,因为我安装了一个不稳定的版本,你不应该直接从repo https://github.com/Itseez/openc/安装opencv,转到发布版本并下载最新版本。
答案 1 :(得分:0)
我使用3.0.0 beta遇到了同样的问题。
您的第一行是C ++警告。如果您只是想尝试运行测试,那么现在就可以忽略它。否则,请使用std::string
并在需要时使用c_str()
方法进行转换。这些char* windowName = "My Window"
行显示在OpenCV教程中。
对于第二个namedWindow()
参数,只需使用WINDOW_AUTOSIZE
代替CV_WINDOW_AUTOSIZE
。
对于模板匹配,您还需要取出CV_
前缀并使用TM_SQDIFF
。看起来它也适用于所有其他人(TM_SQDIFF_NORMED
,TM_CCORR
等)。