新建test文件夹,文件夹存在test.cpp和CMakeLists.txt test.cpp
#include <iostream>
#include <string>
#include <sstream> #include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/videoio.hpp> using namespace cv;
using namespace std; const char* keys =
{
"{help h usage ? | | print this message}"
"{@video | | Video file, if not defined try to use webcamera}"
}; int main(int argc, const char** argv)
{
CommandLineParser parser(argc, argv, keys);
parser.about("Reading a video and camera v1.0.0"); if (parser.has("help"))
{
parser.printMessage();
return ;
}
String videoFile = parser.get<String>(); if (!parser.check())
{
parser.printErrors();
return ;
} VideoCapture cap;
if (videoFile != "")
{
cap.open(videoFile);// read a video file
}else {
cap.open();// read the default caera
}
if (!cap.isOpened())// check if we succeeded
{
return -;
} namedWindow("Video", );
while ()
{
Mat frame;
cap >> frame; // get a new frame from camera
imshow("Video", frame);
if (waitKey() >= ) break;
} // Release the camera or video file
cap.release();
return ;
}
CMakeLists.txt
project(test) cmake_minimum_required(VERSION 2.8.7) # option to enable OpenMP; only relevant for the KCF version with the
# VOT scale estimation
option(WITH_OPENMP "Enable OpenMP" OFF) if(WITH_OPENMP)
find_package(OpenMP REQUIRED) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif(WITH_OPENMP) # add c++11 support
if(CMAKE_COMPILER_IS_GNUCC)
ADD_DEFINITIONS ( -std=c++11 )
endif(CMAKE_COMPILER_IS_GNUCC) # add OpenCV
set(OPENCV_DIR_HINT "") if(WIN32)
get_filename_component(OPENCV_DIR_PLATFORM $ENV{OPENCV_DIR} DIRECTORY)
get_filename_component(OPENCV_DIR_HINT ${OPENCV_DIR_PLATFORM} DIRECTORY)
endif(WIN32) set(OpenCV_STATIC OFF)
find_package(OpenCV REQUIRED HINTS ${OPENCV_DIR_HINT})
编译过程:
> cd test
> g++ test.cpp -o test `pkg-config --cflags --libs opencv`
> ./test