常用的一些代码整理

本文分享了使用OpenCV进行人脸检测和图像处理的实用代码片段,包括人脸区域显示、UMat到Mat转换、图像上特定位置写字、实时与视频检测等核心功能实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用的一些代码:

1.人脸区域显示:

    cv::Mat img = gray.getMat(1);

   for (auto rect : faceRects)

    {

     cv::rectangle(img, rect, cv::Scalar(255, 255, 255), 2);

    }

    imshow("face detection results", img);

    cv::waitKey(25);

 

2.UMat转Mat:

cv::Mat img = gray.getMat(1);

 

3.cv::Rect

 br();//the bottom-right corner

 tl();//the top-left corner

 

4.图像上特定位置写文字

int mark(0);

for (cv::Point2d landmark : landmarks)

{

   cv::circle(img, landmark, 1, cv::Scalar(0, 255, 0), 1);

  mark++;

  string s = to_string(mark);

  ////第一个坐标表示起始位置,1是大小,2是粗细

  cv::putText(image,s, landmark, cv::FONT_HERSHEY_SIMPLEX, 0.2, (200, 255, 255), 0.5, cv::LINE_AA);

 }

 

5.实时检测与视频检测代码

    实时检测: 

            cv::VideoCapture capture;

            if (!capture.open(0) && !capture.isOpened())

            {

                std::cerr << "Can't open camera!" << std::endl;

                return;

            }

           cv::Mat frame;

           capture >> frame;

 

    视频检测:

          cv::VideoCapture capture(“E:\VideoData\1.avi”);

            if (!capture.isOpened())

            {

                std::cerr << "Can't open " << m_inFile << std::endl;

                return;

            }

          cv::Mat frame;

          capture >> frame;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值