资源简介
对输入的一个彩色视频与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] != ‘\0‘; ++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] != ‘\0‘; ++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 - 副本\.vs\OpenCVHomework\v15\.suo
文件 22069248 2017-12-13 10:37 OpenCVHomework - 副本\.vs\OpenCVHomework\v15\Browse.VC.db
文件 3866624 2017-12-13 10:35 OpenCVHomework - 副本\.vs\OpenCVHomework\v15\ipch\AutoPCH\7638c51874665c9c\EXE_COMMON.ipch
文件 3473408 2017-12-13 10:36 OpenCVHomework - 副本\.vs\OpenCVHomework\v15\ipch\c2bf17db8390ffb5.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 - 副本\Debug\CvxText.obj
文件 1261056 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.exe
文件 796344 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.ilk
文件 1914 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.log
文件 301781 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.obj
文件 305395 2017-12-12 22:01 OpenCVHomework - 副本\Debug\opencvhomework.obj.enc
文件 2883584 2017-12-13 10:34 OpenCVHomework - 副本\Debug\OpenCVHomework.pch
文件 2830336 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.pdb
文件 5234 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.tlog\CL.command.1.tlog
文件 132076 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.tlog\CL.read.1.tlog
文件 4196 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.tlog\CL.write.1.tlog
文件 4804 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.tlog\li
文件 13978 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.tlog\li
文件 1468 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.tlog\li
文件 223 2017-12-13 10:36 OpenCVHomework - 副本\Debug\OpenCVHomework.tlog\OpenCVHomework.lastbuildstate
文件 6198 2017-12-13 10:34 OpenCVHomework - 副本\Debug\stdafx.obj
文件 1141760 2017-12-13 10:36 OpenCVHomework - 副本\Debug\vc141.idb
文件 1527808 2017-12-13 10:36 OpenCVHomework - 副本\Debug\vc141.pdb
............此处省略38个文件信息
相关资源
- Cmake编译安装Opencv所需资源
- opencv2.4.3win,vs即用
- opencv244压缩文件
- 编译opencv3.1需要的opencv_ffmpeg_64.dll-o
- bvlc_googlenet.prototxt &synset;_words.txt
- 红狼远控gh0st3.6版本的vs2010 vs2013 vs2
- opencv-4.2.0-windows版本
- opencv3.1.0+contrib
- openc3.2进行cmake时需要的文件
- VS2017OpenGL 配置步骤
- 支持VS2017的vax插件VA_X_Setup2210
- OpenCV Haar分类器车辆识别模型训练样本
- ippicv_2019_lnx_intel64_general_20180723.tgz
- ippicv_win(官方ippicv_windows_20141027版本
- opencv2.0.0安装包
- 利用Opencv3.2中的DPM模块,实现DPM算法
- OpenCV_1.0 安装包
- opencv3.4.1最新库文件
- CMake编译opencv mingw版本
- 基于opencv的人脸检测与跟踪
- 摄像头寻迹+stm32平衡车
- OpenCV初学英文文献
- 基于opencv的远程视频监控智能小车
- OpenCV By Example (OpenCV3)
- 免费学习opencv中文版
- 基于OpenCV的张正有标定法代码+棋盘图
- OpenCV算法实现参考文献
- dlib-19.10 VS2017 编译好的库
- opencv3.4.1的opencv_traincascade.exe 和 open
- 车辆分车道计数
评论
共有 条评论