
有用源码
文章平均质量分 78
tkp2014
这个作者很懒,什么都没留下…
展开
-
CPU时间测试函数
很多时候,我们想要统计一段代码运行的时间,但是这段代码运行的时间很短很短,以至于用clock()等函数获得时间的方法几乎是无效的。那么我们该粗和获得高时间呢?很多Intel的CPU有一条获得系统时钟的指令。我们可以用这条指令来获得时间。rdtsc.h[cpp] view plaincopy#if defined(__i原创 2014-08-06 12:31:19 · 657 阅读 · 0 评论 -
使用ffmpeg实现解码并保存为yuv文件
通过ffmpeg实现解码并保存为yuv文件/*** 抽取ffmpeg中的函数接口实现视频解码并保存*/#define __STDC_CONSTANT_MACROS#include extern "C"{#include "libavutil/avutil.h"#include "libavcodec/avcodec.h"#include "libavforma原创 2015-06-26 16:14:27 · 2302 阅读 · 0 评论 -
FFmpeg(2.4.4)中关于图像格式的头文件 -- pixfmt.h
/* * copyright (c) 2006 Michael Niedermayer * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Pu原创 2015-06-26 16:32:06 · 6285 阅读 · 0 评论 -
ffmpeg解码数据转为Mat通过opencv函数显示
/*** 抽取ffmpeg中的函数接口实现视频解码,再通过Opencv中的函数接口播放*/#define __STDC_CONSTANT_MACROS#include // Opencv#include #include #include #include extern "C"{#include "libavutil/avutil.h"#include "liba原创 2015-06-26 16:39:48 · 5530 阅读 · 1 评论 -
ffmpeg解码+opencv显示+时间测试
/*** 抽取ffmpeg中的函数接口实现视频解码,再通过Opencv中的函数接口播放*/#define _CRTDBG_MAP_ALLOC#include #define __STDC_CONSTANT_MACROS#include #include #include // Opencv#include #include #include #include #原创 2015-07-09 13:34:10 · 1069 阅读 · 0 评论 -
Windows进程内部堆的操作
/*** 进程默认堆操作,进程多个其他堆创建*/#include #include int main(){ SYSTEM_INFO si; GetSystemInfo(&si); HANDLE hHeap1; hHeap1 = HeapCreate( HEAP_NO_SERIALIZE, si.dwPageSize*2, //堆初始大小为 2页 si.dwPa原创 2015-07-12 14:43:46 · 492 阅读 · 0 评论 -
C语言常见函数重写
面试题中经常出现一类考题就是,重新实现C语言中的库函数,例如:strcpy,memcpy,stcmp.../* strcpy函数 */char *MyStrcpy(char *des, const char *src){ assert(des); assert(src); char *ptr; ptr = des; while ((*ptr++ = *src+原创 2015-07-26 11:47:48 · 4969 阅读 · 0 评论 -
NV12转换为I420
int nv12Toi420(int nWidth,int nHeight,int nPitch,CUdeviceptr* Src_NV12,unsigned char *Dst_i420){ if(m_pTempBufSize < nPitch * nHeight * 3 / 2) { m_pTempBufSize = nPitch * nHeight * 3 / 2; if(m_原创 2015-08-03 14:49:33 · 2795 阅读 · 0 评论 -
YV12转为I420
YV12在内存的中的存储顺序为:Y Y Y Y Y Y Y Y Y Y U U U U U U U U UV V V V V V V V I420在内存中的存储顺序为:Y Y Y Y Y Y Y Y Y Y V V V V V V V V U U U U U U U U U二者只是U、V排列顺序不同,YV12(YU原创 2015-06-25 19:07:49 · 1533 阅读 · 0 评论 -
读取yuv并转化为RGB数据在Opencv中打开显示
/*** Opencv中一般是读取 demo.avi 格式视频,下面程序是直接读取 demo.yuv 然后使用 Mat 保存* 再使用 cv::cvtColor() 将每帧的 yuv 数据转化为 rgb 然后显示*/#include #include #include #include #include #include using namespace st原创 2015-06-24 16:22:42 · 11669 阅读 · 2 评论 -
OpenCV中Mat与IplImage和CvMat数据类型间的相互转换
Mat类型较CvMat和IplImage有更强的矩阵运算能力,支持常见的矩阵运算(参照Matlab中的各种矩阵运算),所以将IplImage类型和CvMat类型转换为Mat类型更易于数据处理。Mat类型可用于直接存储图像信息,通过函数imread、imwrite、imshow等实现(与Matlab中的函数相似),似乎在某种程度上可以取代IplImage类型。(1)将Ip转载 2015-06-24 16:36:48 · 469 阅读 · 0 评论 -
将yuv转换为Opencv中的Ipl
int colorchannel = 3;IplImage *pCurrFrame = NULL;pInFile = fopen(input.infile, "rb"); if (pInFile == NULL) { printf("Error: Can\'t open input YUV file\\n"); exit(原创 2015-06-24 12:56:22 · 567 阅读 · 0 评论 -
Windows下时间测试函数
Windows提供了如下的高精度性能函数:BOOL QueryPerformanceFrequency(LARGE_INTEGER* pliFrequency);BOOL QueryPerformanceCounter(LARGER_INTEGER* pliCount);这些函数假设正在执行的线程不会被抢占,但是大多数高精度性能分析都是针对生命期限很短的代码块。可以原创 2014-12-29 20:37:07 · 657 阅读 · 0 评论 -
C语言中常用的计时方法
目录(?)[+] C语言中常用计时方法总结1. time()头文件:time.h函数原型:time_t time(time_t * timer)功能:返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到现在的此时此刻所经过的秒数。用time()函数结合其他函数(如:localtime、gmtime转载 2014-12-29 21:05:34 · 801 阅读 · 0 评论 -
CUDA实现矩阵转置
#include #include #include #include #include #include #include #include /*************************** * Matrix Transpose on cpu * **************************/#define row 10#define col 1原创 2015-01-21 21:34:51 · 3238 阅读 · 1 评论 -
解码单个视频及保存yuv数据到文件中
// 解码单路视频,并保存解码后的yuv数据到文件中去// cudaDecode.lib是静态库文件,本程序实例展示如何调用此库文件相应接口实现解码功能#include "iostream"#include #include "windows.h"#include "../header/cudaDecodeInterface.h"//#pragma comment(li原创 2015-06-19 09:10:36 · 1633 阅读 · 0 评论 -
使用信号量控制线程执行顺序,进而控制不同视频流的解码顺序
// 使用Window下多线程API以及信号量来控制视频的解码顺序#include #include "QueryPerformance.h" // time counter#include "windows.h"#include #include #include "cudaDecodeInterface.h"#pragma comment(lib,"cudaDe原创 2015-06-19 09:07:25 · 941 阅读 · 0 评论 -
多线程解码并保存为yuv
// 开启多线程解码高清视频,并将解码后的原始数据yuv保存到硬盘#include #include "QueryPerformance.h" // time counter#include "windows.h"#include #include #include "cudaDecodeInterface.h"#pragma comment(lib,"cudaDe原创 2015-06-19 09:01:26 · 588 阅读 · 0 评论 -
yuv420转为cv::Mat
某些特定场合我们会经常遇到yuv420格式的视频文件,这种视频帧无法直接用于opencv,故而,需要进行格式转换;幸运的是,opencv提供了rgb到yuv420的格式转换函数;下面给出基本用法;函数1:读取avi格式的视频文件,转换成Yuv420格式,并写入文件[cpp] view plaincopyvoid WriteYu转载 2015-06-24 13:13:24 · 6505 阅读 · 0 评论 -
读取yuv数据并做光流法处理
/**** 本程序读取yuv数据,调用 cv::cvtColor(yuvImg, frame, cv_YUV2BGR_I420)* 将yuv数据转化为Opencv能够读取的 Mat 格式数据,然后做光流法处理*/#include #include #include #include #include #include #include原创 2015-06-24 15:36:14 · 2017 阅读 · 1 评论