首先我是小白,代码是抄的_(:з」∠)_
其他的都配置好了,直接新建项目(qt console application),build system里选cmake然后一直下一步
main.cpp
#include <iostream>
#include <string>
#include <sstream>
#include <opencv2/opencv.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_camera) #工程名称
cmake_minimum_required(VERSION 2.8) #cmake版本要求
aux_source_directory(. SRC_LIST) #添加源文件,把存储源文件的变量赋值给SRC_LIST
add_executable(${PROJECT_NAME} ${SRC_LIST}) #生成执行文件
if( CMAKE_BUILD_TYPE STREQUAL "Release")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11 -fPIC")
else()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -std=c++11 -fPIC")#设置寻找外部库的cmake参数的
endif()
message("*** ${PROJECT_NAME}: Build type:" ${CMAKE_BUILD_TYPE} ${CMAKE_CXX_FLAGS} "***")
#设置cmake位置,
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmakes)
#设置opencv的位置
set(OpenCV_DIR ~/opencv-4.6.0/build)#自己安装的opencv路径,不然上面.cpp中头文件就报错file not found,一搜都让你改.pro文件,但是你是cmake哪来的.pro文件啊??(゚Д゚)ノ所以小白来改这里
find_package(OpenCV REQUIRED)
#-------------------------------------- 包含头文件 --------------------------------------
include_directories(${OpenCV_INCLUDE_DIRS})#设置opencv头文件包含路径,类似vs中的include路径
include_directories(${Qt5Widgets_INCLUDE_DIRS})
include_directories(${Boost_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
#-------------------------------------- -添加项目- --------------------------------------
#file(GLOB_RECURSE HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/*.*h)可以用来添加头文件和源文件
#file(GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c*)
#-------------------------------------- -添加链接库- --------------------------------------
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
${OpenCV_LIBS}
${Qt5Widgets_LIBRARIES}
${Boost_LIBRARIES}
)
然后点击下面的绿色三角运行