新建test文件夹,文件夹存在test.cpp和CMakeLists.txttest.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 0;
}
String videoFile = parser.get<String>(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 estimationoption(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 supportif(CMAKE_COMPILER_IS_GNUCC) ADD_DEFINITIONS ( -std=c++11 )endif(CMAKE_COMPILER_IS_GNUCC)# add OpenCVset(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打开笔记本摄像头问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!