OpenCV视频生成


对输入的一个彩色视频与3张以上照片,用OpenCV实现以下功能要求: 1. 将输入视频vi与多张图片pics处理成相同长宽后,合在一起生成一个视频vo; 2. 图片pics合成到视频中时需要编程实现图片切换效果,如幻灯片中的渐入、飞入等; 3. 在新视频中vo中需要完全编程实现一段片头,如编程绘制一个动图; 4. 最后以输入视频vi的两倍播放输出视频vo,并在视频底部打上含自己姓名的字幕。
资源截图
代码片段和文件信息
#include “stdafx.h“
#include   
#include   
#include   
#include   
#include “CvxText.h“  



Cv310Text::Cv310Text(const char *freeType)
{
assert(freeType != NULL);

// 打开字库文件 创建一个字体  

if (FT_Init_FreeType(&m_library)) throw;
if (FT_New_Face(m_library freeType 0 &m_face)) throw;

// 设置字体输出参数  

restoreFont();

// 设置C语言的字符集环境  

setlocale(LC_ALL ““);
}

// 释放FreeType资源  

Cv310Text::~Cv310Text()
{
FT_Done_Face(m_face);
FT_Done_FreeType(m_library);
}

// 设置字体参数:  
//  
// font         - 字体类型 目前不支持  
// size         - 字体大小/空白比例/间隔比例/旋转角度  
// underline   - 下画线  
// diaphaneity   - 透明度  

void Cv310Text::getFont(int *type CvScalar *size bool *underline float *diaphaneity)
{
if (type) *type = m_fontType;
if (size) *size = m_fontSize;
if (underline) *underline = m_fontUnderline;
if (diaphaneity) *diaphaneity = m_fontDiaphaneity;
}

void Cv310Text::setFont(int *type CvScalar *size bool *underline float *diaphaneity)
{
// 参数合法性检查  

if (type)
{
if (type >= 0) m_fontType = *type;
}
if (size)
{
m_fontSize.val[0] = fabs(size->val[0]);
m_fontSize.val[1] = fabs(size->val[1]);
m_fontSize.val[2] = fabs(size->val[2]);
m_fontSize.val[3] = fabs(size->val[3]);
}
if (underline)
{
m_fontUnderline = *underline;
}
if (diaphaneity)
{
m_fontDiaphaneity = *diaphaneity;
}
}

// 恢复原始的字体设置  

void Cv310Text::restoreFont()
{
m_fontType = 0;            // 字体类型(不支持)  

m_fontSize.val[0] = 20;      // 字体大小  
m_fontSize.val[1] = 0.5;   // 空白字符大小比例  
m_fontSize.val[2] = 0.1;   // 间隔大小比例  
m_fontSize.val[3] = 0;      // 旋转角度(不支持)  

m_fontUnderline = false;   // 下画线(不支持)  

m_fontDiaphaneity = 1.0;   // 色彩比例(可产生透明效果)  

   // 设置字符大小  

FT_Set_Pixel_Sizes(m_face (int)m_fontSize.val[0] 0);
}

// 输出函数(颜色默认为黑色)  

int Cv310Text::putText(cv::Mat &frame const char    *text CvPoint pos)
{
return putText(frame text pos CV_RGB(255 255 255));
}
int Cv310Text::putText(cv::Mat &frame const wchar_t *text CvPoint pos)
{
return putText(frame text pos CV_RGB(255 255 255));
}

//  

int Cv310Text::putText(cv::Mat &frame const char    *text CvPoint pos CvScalar color)
{



if (frame.empty()) return -1;
if (text == NULL) return -1;

//  

int i;
for (i = 0; text[i] != ‘‘; ++i)
{
wchar_t wc = text[i];

// 解析双字节符号  

if (!isascii(wc)) mbtowc(&wc &text[i++] 2);

// 输出当前的字符  

putWChar(frame wc pos color);
}
return i;
}
int Cv310Text::putText(cv::Mat &frame const wchar_t *text CvPoint pos CvScalar color)
{

if (frame.empty()) return -1;
if (text == NULL) return -1;

//  

int i;
for (i = 0; text[i] != ‘‘; ++i)
{
// 输出当前的字符  

putWChar(frame text[i] pos color);
}
return i;
}

// 输出当前字符 更新m_pos位置  

void Cv310Text::putWChar(cv::Mat &frame wchar_t wc CvPoint &pos CvScalar color)
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     28672  2017-12-13 10:37  OpenCVHomework - 副本.vsOpenCVHomeworkv15.suo

     文件   22069248  2017-12-13 10:37  OpenCVHomework - 副本.vsOpenCVHomeworkv15Browse.VC.db

     文件    3866624  2017-12-13 10:35  OpenCVHomework - 副本.vsOpenCVHomeworkv15ipchAutoPCH7638c51874665c9cEXE_COMMON.ipch

     文件    3473408  2017-12-13 10:36  OpenCVHomework - 副本.vsOpenCVHomeworkv15ipchc2bf17db8390ffb5.ipch

     文件     726719  2014-02-16 08:46  OpenCVHomework - 副本1.jpg

     文件     722877  2014-02-16 08:45  OpenCVHomework - 副本2.jpg

     文件     885858  2014-02-26 09:30  OpenCVHomework - 副本3.jpg

     文件     624132  2014-02-16 08:45  OpenCVHomework - 副本4.jpg

     文件     435266  2014-02-16 08:45  OpenCVHomework - 副本5.jpg

     文件     536796  2014-02-16 08:45  OpenCVHomework - 副本6.jpg

     文件       4487  2017-12-12 17:53  OpenCVHomework - 副本CvxText.cpp

     文件       4598  2017-12-12 17:52  OpenCVHomework - 副本CvxText.h

     文件     127246  2017-12-13 10:34  OpenCVHomework - 副本DebugCvxText.obj

     文件    1261056  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.exe

     文件     796344  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.ilk

     文件       1914  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.log

     文件     301781  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.obj

     文件     305395  2017-12-12 22:01  OpenCVHomework - 副本Debugopencvhomework.obj.enc

     文件    2883584  2017-12-13 10:34  OpenCVHomework - 副本DebugOpenCVHomework.pch

     文件    2830336  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.pdb

     文件       5234  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.tlogCL.command.1.tlog

     文件     132076  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.tlogCL.read.1.tlog

     文件       4196  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.tlogCL.write.1.tlog

     文件       4804  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.tloglink.command.1.tlog

     文件      13978  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.tloglink.read.1.tlog

     文件       1468  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.tloglink.write.1.tlog

     文件        223  2017-12-13 10:36  OpenCVHomework - 副本DebugOpenCVHomework.tlogOpenCVHomework.lastbuildstate

     文件       6198  2017-12-13 10:34  OpenCVHomework - 副本Debugstdafx.obj

     文件    1141760  2017-12-13 10:36  OpenCVHomework - 副本Debugvc141.idb

     文件    1527808  2017-12-13 10:36  OpenCVHomework - 副本Debugvc141.pdb

............此处省略38个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)