前两天,一位朋友需要提取一段视频的边缘特征,使用会声会影时没找到相应的模块,而我又懒得去学这类软件怎么用。以前看opencv时,发现有Sobel可以处理,就顺手搜了一些资料,网上有不少网友使用opencv实现了该功能。我就东拼西凑,实现了该功能,本文借鉴了其他几位网友的实现思路,抄写了一部分其中的代码,并进行了扩充,实现了提取视频边缘信息,并保存为图片,再将图片转储为视频的功能。恕不能一一致谢!
下面附上完整代码:
下面附上完整代码:
#define _CRT_SECURE_NO_WARNINGS
#include <core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <string>
#include <sstream>
using namespace std;
using namespace cv;
int numFrames;//记录视频的总帧数
int fps;//记录视频的每秒的帧数
int frameW;//视频的宽度
int frameH;//视频的高度
long fourcc;//这个没用到
void video2image();
int image2sobel(Mat img,string image_name);
string itos(int i);
void images2video();
int main(int argc, char *argv[])
{
video2image(); //视频转图片
images2video();
return 0;
}
//将图片sobel化然后保存
int image2sobel(Mat img,string image_name){
M