資源簡介
對輸入的一個彩色視頻與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個文件信息
評論
共有 條評論