我刚刚开始使用 OpenCV,并且我有以下示例 .cpp 文件(来自 opencv.org):
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
我有以下 CMakeList.cmake 文件:
project(opencvTEST)
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
find_package(OpenCV REQUIRED)
# Project Executable
add_executable (test test.cpp)
target_link_libraries(test ${OpenCV_LIBS})
我有一台 Mac(OS 10.6.8),我已经用 CMake 安装了 OpenCV 2.4.3,我搜索了高低并尝试了许多不同的方法来编译这个测试程序(我正在使用命令line--no IDE),但我收到以下编译错误(显然,由于该include
语句无法正常工作):
test.cpp:3:30: error: opencv2/opencv.hpp: No such file or directory
test.cpp:5: error: ‘cv’ is not a namespace-name
test.cpp:5: error: expected namespace-name before ‘;’ token
test.cpp: In function ‘int main(int, char**)’:
test.cpp:9: error: ‘Mat’ was not declared in this scope
test.cpp:9: error: expected `;' before ‘image’
test.cpp:10: error: ‘image’ was not declared in this scope
test.cpp:10: error: ‘imread’ was not declared in this scope
test.cpp:18: error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope
test.cpp:18: error: ‘namedWindow’ was not declared in this scope
test.cpp:19: error: ‘imshow’ was not declared in this scope
test.cpp:21: error: ‘waitKey’ was not declared in this scope
opencv2
我有一个与 , 位于同一目录中的文件夹test.cpp
,并且opencv.hpp
位于 中opencv2
,所以我不明白为什么找不到它。有任何想法吗?
此外,一般来说,OpenCV 期望您将源文件(.cpp 等)放在哪里?