新建test文件夹,文件夹存在test.cpp和cmakelists.txttest.cpp#include
#include
#include
#include
#include
#include
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 0;
}
string videofile = parser.get(0);
if (!parser.check())
{
parser.printerrors();
return 0;
}
videocapture cap;
if (videofile != "")
{
cap.open(videofile);// read a video file
}else {
cap.open(0);// read the default caera
}
if (!cap.isopened())// check if we succeeded
{
return -1;
}
namedwindow("video", 1);
while (1)
{
mat frame;
cap >> frame; // get a new frame from camera
imshow("video", frame);
if (waitkey(30) >= 0) break;
}
// release the camera or video file
cap.release();
return 0;
}
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
总结
以上所述是小编给大家介绍的linux下利用opencv打开笔记本摄像头问题,希望对大家有所帮助