很多刚毕业,或者想着转行到C++ Qt方向的小伙伴,平时可能拿不出比较像样的项目。这里你可要好好收藏啦。自己拿回去好好改改,就可以成为自己的项目经历了。祝各位找工作顺利呀。
好了。废话不多说。
这个项目架构采用的是MVC架构,结合OpenCV,使用QDockWidget + QMainWIndow的控件来展示摄像头监控的画面。
大家可以在这个项目的基础上拓展其他模块应用。
主窗口打开摄像头:
void MainWindow::onOpenWebCam()
{if(!tabCheck())return;CameraView* camView = new CameraView(_sharedImageBuffer);bool ok;int deviceNumber = QInputDialog::getInt(this, tr("Device Number"),tr("Device number of the capture device <br>[web cam is usually 0]"),0, 0, 999,1, &ok);if(!ok){delete camView;return;}if(camView->connectToCamera(deviceNumber)){addNewSourceTab(camView);ui->statusBar->showMessage(tr("Web cam is set as default input source."));}else{delete camView;}
}
然后进行监控,定时保存录像文件。
这里我采用的是Qt6去编译的。大家可以按照我的源码去尝试:
这里使用的是qmake,OpenCV的库,大家可以自行使用vcpkg安装。
win32:{
-lopencv_core4 \
-lopencv_dnn4 \
-lopencv_highgui4 \
-lopencv_imgproc4 \
-lopencv_features2d4 \
-lopencv_flann4 \
-lopencv_calib3d4 \
-lopencv_video4 \
-lopencv_videoio4 \
-lopencv_photo4 \
-lopencv_objdetect4 \
-lopencv_imgcodecs4 \
-lopencv_stitching4
LIBS += -L$$DESTDIR -lNoobaPluginAPI
}
当你编译了整个项目源码之后,各种问题接踵而来。其中一个最典型的问题就是版本对不上,剧本太拖沓。这里我用的是Qt6的MSVC2022最新版编译。
我们直接按Ctrl+R,进行编译。运行后提示你需要某些库。我们就直接链接到vcpkg的库路径。
记得运行程序的时候,需要加上某些vcpkg的库,
最后:项目原代码如下:
链接:https://pan.baidu.com/s/11immmhkYOv9fHyAO9iTQHg?pwd=8888
提取码:8888