C++面试八股文(opencv step3)
1. cv::VideoCapture() 的作用 & 从摄像头捕获视频
- 作用:
VideoCapture类用于打开视频文件或摄像头,并读取视频帧。 - 摄像头捕获示例:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 0 表示打开默认摄像头,1/2 表示其他摄像头
VideoCapture cap(0);
if(!cap.isOpened()) {
std::cout << "无法打开摄像头" << std::endl;
return -1;
}
Mat frame;
while(true) {
cap >> frame; // 读取一帧
if(frame.empty()) break;
imshow("Camera", frame);
// 按 ESC 键退出
if(waitKey(30) == 27) break;
}
return 0;
}
2. 背景减除 (Background Subtraction)
- 概念:用于从视频中提取运动目标,常用于监控和目标检测。
- 示例:
Ptr<BackgroundSubtractor> pBackSub = createBackgroundSubtractorMOG2();
VideoCapture cap(0);
Mat frame, fgMask;
while(cap.read(frame)) {
pBackSub->apply(frame, fgMask); // 更新背景模型并提取前景
imshow("Frame", frame);
imshow("Foreground Mask", fgMask);
if(waitKey(30) == 27) break;
}
3. 在图像上绘制圆形和矩形
Mat img = Mat::zeros(400, 400, CV_8UC3); // 绘
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
C++八股文全集 文章被收录于专栏
本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。
查看27道真题和解析