0053-使用OpenCV进行视频稳像(去抖)的代码

这里暂时就不做代码讲解了,代码亲测可用,里边的注释已经比较详细了,不明白的请自行查阅相关资料。

代码如下
代码中用到的视频下载链接:https://pan.baidu.com/s/1bpwI1Uv 密码:s65y

//opencv版本:OpenCV3.0
//VS版本:VS2013
//Author:qxsf321.net

#include <opencv2/opencv.hpp>
#include <opencv2/videostab.hpp>
#include <string>
#include <iostream>


using namespace std;
using namespace cv;
using namespace cv::videostab;

代码下载后可见,下载链接:https://pan.baidu.com/s/1tdxdZTcFtSQl67_MueRLyA 提取码:n9bi
代码下载后可见,下载链接:https://pan.baidu.com/s/1tdxdZTcFtSQl67_MueRLyA 提取码:n9bi
代码下载后可见,下载链接:https://pan.baidu.com/s/1tdxdZTcFtSQl67_MueRLyA 提取码:n9bi


运行结果截图如下

稳像(去抖)之后的视频下载链接:https://pan.baidu.com/s/1hrR0lNm 密码:f659

通过前后两个视频的对比,可以发现,经过稳像(去抖)处理之后的图像的确是“稳”了很多
 

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
使用php-opencv进行视频人脸识别并返回处理后的视频,需要按照以下步骤进行: 1. 安装php-opencv库 可以使用以下命令在Linux系统中安装php-opencv库: ``` sudo apt-get install php7.0-opencv ``` 2. 编写代码 首先,需要使用OpenCV的VideoCapture类读取视频文件。然后,使用OpenCV的CascadeClassifier类加载人脸检测器的XML文件。接下来,循环遍历视频的每一帧,使用人脸检测器检测每一帧中的人脸,并将检测到的人脸位置信息保存到一个数组中。最后,使用OpenCV的rectangle函数在每一帧中画出检测到的人脸区域,并将处理后的视频输出。 以下是示例代码: ``` <?php $videoPath = "path/to/video.mp4"; $outputPath = "path/to/output.mp4"; $faceCascadePath = "path/to/haarcascade_frontalface_default.xml"; $videoCapture = new CvVideoCapture($videoPath); $faceCascade = new CvCascadeClassifier($faceCascadePath); $frameWidth = $videoCapture->getWidth(); $frameHeight = $videoCapture->getHeight(); $fourcc = CvVideoWriter::fourcc('X', '2', '6', '4'); $videoWriter = new CvVideoWriter($outputPath, $fourcc, $videoCapture->getFps(), new CvSize($frameWidth, $frameHeight)); while (true) { $frame = $videoCapture->queryFrame(); if ($frame === false) { break; } $grayFrame = $frame->convertColor(CV_BGR2GRAY); $faces = $faceCascade->detectMultiScale($grayFrame); foreach ($faces as $face) { $frame->rectangle($face->x, $face->y, $face->x + $face->width, $face->y + $face->height, new CvScalar(0, 0, 255)); } $videoWriter->writeFrame($frame); } $videoCapture->release(); $videoWriter->release(); ``` 在上面的代码中,我们使用CvVideoCapture类读取视频文件,并使用CvCascadeClassifier类加载人脸检测器的XML文件。然后,我们使用detectMultiScale函数检测每一帧中的人脸,并将检测到的人脸位置信息保存到一个数组中。最后,我们使用rectangle函数在每一帧中画出检测到的人脸区域,并将处理后的视频输出。 3. 运行代码 使用以下命令运行代码: ``` php video_face_detection.php ``` 运行完毕后,处理后的视频将保存在$outputPath变量所指定的路径中。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值