Я только начал попробовать 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
Кто-нибудь знает, что происходит, и как я могу это исправить?
Я обнаружил проблему, потому что я установил нестабильную версию, вы не должны напрямую устанавливать opencv из репо https://github.com/Itseez/openc/, перейти к версии выпуска и загрузить последнюю версию,
Я столкнулся с теми же проблемами, используя бета-версию 3.0.0.
Ваша первая строка - предупреждение C++. Вы можете просто проигнорировать это, если вы просто пытаетесь запустить тест. В противном случае используйте std::string
и конвертируйте его с помощью c_str()
когда вам нужно. Эти char* windowName = "My Window"
отображаются в учебниках OpenCV.
Для второго параметра namedWindow()
просто используйте WINDOW_AUTOSIZE
вместо CV_WINDOW_AUTOSIZE
.
Для соответствия шаблону вам также необходимо CV_
префикс CV_
и использовать TM_SQDIFF
. Похоже, он работает и для всех остальных (TM_SQDIFF_NORMED
, TM_CCORR
и т.д.).
char *
не для строк, которые нельзя изменить.