ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

OpenCV计算机视觉开发入门与实践<四>:环境搭建VS2019+OpenCV4.13+Ot5.15

2026/8/14 15:32:21 拓冰建站 浏览量
OpenCV计算机视觉开发入门与实践<四>:环境搭建VS2019+OpenCV4.13+Ot5.15 1.OpenCV安装或编译1.1 下载安装VS2019Qt5.15.21.2 openCV下载安装1下载地址下载地址 https://github.com/opencv/opencv/releases下载完成后安装exe文件安装路径最好不要有中文否则用起来比较麻烦。安装后的库文件include/lib/bin可以直接使用如下所示1.3 openCV编译1下载地址opencv下载地址 https://github.com/opencv/opencv/releasesopencv_contrib下载地址 https://github.com/opencv/opencv_contrib/releases/tag/4.13.0自己编译源码的话就把扩展库也一起编译了两个文件的版本必须保持一致都是4.13.0方便后续自己使用。打开cmake软件设定opencv_contrib路径OPENCV_EXTRA_MODULES_PATHBUILD_opencv_worldON这个选项不开启编译出来的是很多个分开的dll开启后编译后就一个opencv_world4130.dll。其余的很多选项比如CUDA/FMPEG等自己按需求进行开启设定。ALL_BUILD 右键-生成即可完成编译。然后 INSTALL右键-生成即可完成打包dll。2.人脸图片识别程序目的做一个最简单的人脸识别68个特征点程序。voidQOpencvApp::onCompareButtonClicked(){QString sBaseImageui.lineEdit-text();// 1. 加载图像cv::Mat imgcv::imread(sBaseImage.toStdString());if(img.empty()){QMessageBox::warning(this,u8错误,u8无法读取图片);return;}// 2. 初始化人脸检测器 (用于检测人脸区域)// 使用 OpenCV 自带的 Haar 或 LBP 级联分类器QString configPath1QCoreApplication::applicationDirPath()/haarcascade_frontalface_default.xml;CascadeClassifier faceDetector;if(!faceDetector.load(configPath1.toStdString())){QMessageBox::warning(this,u8错误,u8无法加载人脸检测模型);std::cerr无法加载人脸检测模型std::endl;return;}// 3. 初始化特征点检测器 (FacemarkLBF)Ptrcv::face::Facemarkfacemarkcv::face::FacemarkLBF::create();// 加载预训练好的LBF模型QString configPath2QCoreApplication::applicationDirPath()/lbfmodel.yaml;facemark-loadModel(configPath2.toStdString());// 4. 执行人脸检测获取人脸区域 (ROI)std::vectorRectfaces;Mat gray;cvtColor(img,gray,COLOR_BGR2GRAY);faceDetector.detectMultiScale(gray,faces);// 5. 在检测到的人脸区域上执行特征点拟合std::vectorstd::vectorPoint2flandmarks;boolsuccessfacemark-fit(img,faces,landmarks);if(success){// 6. 绘制检测到的 68 个特征点for(size_t i0;ilandmarks.size();i){for(size_t j0;jlandmarks[i].size();j){circle(img,landmarks[i][j],5,Scalar(0,255,0),-1);}}}QString imgPathQCoreApplication::applicationDirPath()/result68Landmarks.jpg;imwrite(imgPath.toStdString(),img);// 缩放图片以适应 Label 大小保持宽高比QPixmappixmap(imgPath);if(!pixmap.isNull()){QPixmap scaledpixmap.scaled(ui.label_base-size(),Qt::KeepAspectRatio,Qt::SmoothTransformation);ui.label_base-setPixmap(scaled);}}3.源码下载地址