网站搜索引擎关键字怎么做网络策划方案
网站搜索引擎关键字怎么做,网络策划方案,asp.net网站建设ppt,数字营销公司排行榜话接上一篇#xff0c;我们仍使用在上篇《QtOpencv#xff1a;Qt中部署opencv》创建的Qt项目来测试opencv提供的sample。
在正式开始本篇之前#xff0c;我们先说做一下准备工作#xff1a;
一、opencv官方文档
学习最权威和最可靠的方式#xff0c;就是阅读官方文档和…话接上一篇我们仍使用在上篇《QtOpencvQt中部署opencv》创建的Qt项目来测试opencv提供的sample。
在正式开始本篇之前我们先说做一下准备工作
一、opencv官方文档
学习最权威和最可靠的方式就是阅读官方文档和实践模块samples。同样opencv的文档个人觉得做的还是可以的当然相对于我们熟悉Qt开发的朋友来说这帮助文档还是“略微逊色”。 上篇我们选定opencv 3.4.16 版本进行工程实践所以我们对应去看该版本的文档即可。 doc地址https://docs.opencv.org/3.4.16/
有朋友会问3.0和4.0的版本有什么大的变化么答案是我目前也不知道后面在逐渐精进深入的过程中版本特性比较必然也是我们要做的工作之一。所谓知己知彼百战不殆。手握神剑当然要尽可能把圣剑之威力发挥的淋漓尽致。不过话说回来opencv太大面太广深入研究某一模块到极致就可惊为天人了不必泛泛求全。但是保持对知识的贪婪和饥渴总能促使人不断的学习和进步。话说作者写这篇的时候已经忘记吃饭。
二、下载源码和samples
地址https://github.com/opencv/opencv/tree/3.4 data中有我们本章人脸检测的数据模型需要拷贝到我们Qt自己的项目目录下。譬如作者自己的
三、项目实践
#include QApplication
#include opencv.hpp
#include QDebug
#include opencv2/imgproc.hpp // Gaussian Blur
#include opencv2/core.hpp // Basic OpenCV structures (cv::Mat, Scalar)
#include opencv2/videoio.hpp
#include opencv2/highgui.hpp // OpenCV window I/O
#include opencv2/features2d.hpp
#include opencv2/objdetect.hpp
#include stdio.husing namespace std;
using namespace cv;const string WindowName Face Detection example;class CascadeDetectorAdapter: public DetectionBasedTracker::IDetector
{public:CascadeDetectorAdapter(cv::Ptrcv::CascadeClassifier detector):IDetector(),Detector(detector){CV_Assert(detector);}void detect(const cv::Mat Image, std::vectorcv::Rect objects) CV_OVERRIDE{Detector-detectMultiScale(Image, objects, scaleFactor, minNeighbours, 0, minObjSize, maxObjSize);}virtual ~CascadeDetectorAdapter() CV_OVERRIDE{}private:CascadeDetectorAdapter();cv::Ptrcv::CascadeClassifier Detector;};int main(int , char** )
{namedWindow(WindowName);VideoCapture VideoStream(0);if (!VideoStream.isOpened()){printf(Error: Cannot open video stream from camera\n);return 1;}/// 这里模型文件的路径一定要写对按照各位的项目配置实际填写/// 可以使用绝对路径也可以使用相对路径std::string cascadeFrontalfilename samples::findFile(data/lbpcascades/lbpcascade_frontalface.xml);cv::Ptrcv::CascadeClassifier cascade makePtrcv::CascadeClassifier(cascadeFrontalfilename);cv::PtrDetectionBasedTracker::IDetector MainDetector makePtrCascadeDetectorAdapter(cascade);if ( cascade-empty() ){printf(Error: Cannot load %s\n, cascadeFrontalfilename.c_str());return 2;}cascade makePtrcv::CascadeClassifier(cascadeFrontalfilename);cv::PtrDetectionBasedTracker::IDetector TrackingDetector makePtrCascadeDetectorAdapter(cascade);if ( cascade-empty() ){printf(Error: Cannot load %s\n, cascadeFrontalfilename.c_str());return 2;}DetectionBasedTracker::Parameters params;DetectionBasedTracker Detector(MainDetector, TrackingDetector, params);if (!Detector.run()){printf(Error: Detector initialization failed\n);return 2;}Mat ReferenceFrame;Mat GrayFrame;vectorRect Faces;do{VideoStream ReferenceFrame; /// 获取每一帧图像cvtColor(ReferenceFrame, GrayFrame, COLOR_BGR2GRAY);Detector.process(GrayFrame);Detector.getObjects(Faces); for (size_t i 0; i Faces.size(); i){rectangle(ReferenceFrame, Faces[i], Scalar(0,255,0)); /// 人脸检测并绘制矩形}imshow(WindowName, ReferenceFrame);} while (waitKey(30) 0); /// 等待按键触发退出检测loopDetector.stop();return 0;
}四、效果演示博主自爆了* 下一张我们深入研究人脸检测此模型只支持正脸的实现以及模型文件杂谈一二~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89294.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!