- 博客(47)
- 资源 (1)
- 收藏
- 关注
原创 OpenCL里面read_image小测试
使用OpenCL处理图像的时候,通过read_image而不是普通的cl_mem似乎是一个十分诱人的方式。但通过实际测试,发现这个接口不像想象的那样好。我们选择AMD的显卡,使用新的驱动和SDK。然后测试read_imagef和read_imagei的数据读取结果,我们希望能够读取到插值值以后的数据,结果如下:(方括号里面的值是点的坐标,第一行是目标点坐标,后面两行是相邻点)1. 当sampl
2013-10-24 11:29:33
4727
原创 如何编译OpenCV里面的ocl模块
最近OpenCV代码库有SVN转到Git了,里面多了我们期待已久的ocl模块(一些接口的OpenCL加速版本,如果不知道OpenCL是啥,就自己查一下了,我这里不做介绍)我试了一下,在VS2010上面使用x64模式编译没有问题。下面是遇到一些问题的解决办法,跟大家分享一下:1. 在CMakeGUI里面选中“WITH_OPENCL”项,默认是不选的。2. 点击“configure”的时候,会
2012-07-27 11:01:33
5013
3
原创 赛车游戏的悖论
玩赛车游泳已经有些年头了,最近忽然明白了一件事情,那就是赛车游戏里的画面细节对于游戏的好坏而言是鸡肋。在GPU如此发达的今天,一个竞速游戏如果没有逼真的画面似乎说不过去,但事实上,当你专注于驾驶赛车的时候,你的精力完全被局限在道路,特别是远方的道路上,还有附近的对手上。至于路上的阴影,路边的花草树木和远方的山水都是一种衬托而已。所以,一款成功的赛车游戏,绝对需要良好的操控感受、设计合理的赛道和聪明
2012-06-16 20:57:17
849
原创 小型软件开发的四个阶段
1. 预研这个阶段要把各种算法以及技术路线方面的不确定问题做一个尝试。代码可以相当随意,也不用担心架构,但是务必要把各种问题覆盖全面,例如exe下能够做到的,换成dll是否还能。这个阶段不拘一格,八仙过海,各显神通。2.设计这是需要定义接口,数据类型,以及用户界面的时候。将体现架构师的经验和工程才能。比如模块要高内聚,低耦合,等等等等。独断是必要的,否则一人一个主意,搞的乱七八糟。设计
2011-11-26 09:51:58
1903
原创 部分赛车游戏对方向盘支持程度记录
方向盘型号为Saitek R660 游戏列表:LifeForSpeed:游戏对方向盘支持良好,但是玩起来不易控制,经常出现车子不停摆动情况。Richard Burns Rally(RBR):方向盘支持优秀,路感细腻,但是道路较窄,车速一快就会撞车。Need For Speed Underground(NFS7):方向盘支持良好,路感基本具备,但是漂移赛比手柄还要难玩。Mid
2010-02-28 10:14:00
1117
原创 基于Winmm库的音频采集
Winmm库提供的音频采集接口比较底层,可以直接获取和播放wave数据。其主要流程如下:采集1. waveInOpen()2. waveInStart()3. waveInPrepareHeader()4. waveInAddBuffer()5. waveInUnprepareHeader()6. waveInStop()7. waveInReset()8. waveInClose()如果是不停的
2009-06-16 20:17:00
3272
转载 IT人才12项技能
1 机器学习 Scott说,随着许多公司努力开发需要在庞大的数据集中查找数据的软件,譬如协作式过滤、垃圾邮件过滤和欺诈检测等软件,一些观察人士发现, 市场对以下这些人才的需求在迅速上升: 具有机器学习知识,或者能够设计及开发可提升计算机性能的算法和技术。不单单对谷歌而言是这样。有许多应用软件包含非常庞大的数据集,这就带来了一个根本问题,即如何组织数据并提供给用户。 对这种应用软件的需求进一步扩
2009-05-07 09:27:00
368
原创 基于Dshow的视频采集
Dshow提供了一个基于COM的Windows下视频处理框架,通过Dshow也可以比较方便的和各种视频采集设备接口,此处介绍一个简单的视频采集的FilterGraph。组成是:DeviceFilter -> SampleGrabberFilter -> NullFilter。其中DeviceFilter用来获取和设置摄像机的采集参数,SampleGrabberFilter用来获得采集到的视频帧,N
2009-04-26 20:04:00
925
原创 发个开源软件
第一次想到要将自己做的小工具发布出来给别人用,看了看华军,天空这些地方,感觉发布过程挺复杂的(需要审批),干脆作为csdn上传资源吧。把软件release了一下,填写了一些属性信息,about对话框,最后起个名字叫iPica(因为是个图片转换工具),就差自己做个图标了,不过算了,估计也不会有什么人用。
2009-04-18 09:54:00
533
原创 应用SOCKS服务器实现P2P转发
服务器转发是解决两个子网内主机直接通信的最后办法,在STUN协议当中定义了相关规范,不过看了一下SOCKS代理服务器协议,觉得也可以实现,具体方法如下:需要被连接的一方首先通过BIND操作在代理服务器上面开辟一个监听端口,然后通过外部数据通道将代理服务器上的监听地址传给peer,peer就可以连接上了。
2009-03-19 10:40:00
1488
原创 XMPP协议摘要
总体描述 一个会话以开头,结束,中间可以有任意长的信息流 包含的属性有tofromidxml:lang四种,用法如下 | initiating to receiving | receiving to initiating -----------+-------------------------------+-----
2009-03-10 15:17:00
479
原创 之字形访问数组算法
void ZVisit(int** array,int size){ int i=0,j=0; printf("%d ",array[i][j]); j++; //首先向右一步 printf("%d ",array[i][j]); while (i<size || j<size) { while((j-1)>=0 && (i+1)<size){ //向左下
2009-01-23 09:22:00
719
原创 用select使Accept()具有超时能力
因为是在线程里面调用Accept(),所以不希望一直阻塞。struct timeval timeout={2,0};fd_set rfd;int nfds;while (1){ FD_ZERO(&rfd); FD_SET(listen,&rfd); nfds = select(1,&rfd,(fd_set*) 0,(fd_set*) 0,&
2008-12-28 13:03:00
7136
1
原创 二分法查找有序数组
int find(int* array, int begin, int end, int aim){ do { int mid=begin+(end-begin)/2; if(array[mid]==aim) return mid; else if (aim else begin=mid;
2008-12-26 10:13:00
787
原创 快速排序
int HandShake( int* array, int start, int end ){ int tmp=array[start];//将首个元素作为中间值,并寄存起来 do{ while( array[end]>=tmp && start if( start {array[start]=array[end];//发现一个小的,丢到前
2008-12-21 16:16:00
330
原创 C语言常用
宏的一些用法#操作符例如#define str(x) #x如果在程序中输入语句str(testing)最终展开形式将会是"testing"##操作符例如#define printx(n) printf("%d/n", x##n)语句中的字符串“x##n”的##操作符将前面和后面的记号连接起来,合成一个新的记号printf(20);将被展开成如下形式:printf("%d/n",f20);
2008-12-01 15:33:00
512
原创 一些linux命令
查找 /test 目录下包含“user”字符串的文件find /test | xargs grep "user" 查找 /test 目录下名称为main.cpp的文件find /test -name main.cpp 查找 acc.log文件中包含flv的行awk /flv/ acc.log 查找 acc.log文件中第三字段包含flv的行并打出第一字段的内
2008-11-26 17:11:00
326
原创 晚间闲逛
我一个人行走在被暮色笼罩的商品楼小区里,路灯懒散的光仅仅能够指路,四周是昏昏暗暗的,倒是路旁高大楼房里面落地大窗里的灯光更能提醒人身在何处。
2008-11-25 20:06:00
372
转载 利用GetPrivateProfileString读取配置文件(.ini)
转自http://hi.baidu.com/jywb_pub/blog/item/1bb0a30132f01d00738da5f3.html 配置文件中经常用到ini文件,在VC中其函数分别为:写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LP
2008-11-21 11:38:00
449
原创 MYSQL C API 一例
一个获取查询结果的例子std::string sql="select userid from user";if ( mysql_real_query(&mysql,sql.c_str(),sql.size())!=0 ){ return FALSE;}MYSQL_RES *sql_res_set;MYSQL_ROW sql_row;unsigned long *sql_length;sql_r
2008-11-20 14:49:00
363
转载 NAT分类
转自http://blog.csdn.net/wuhuiran/archive/2008/03/31/2234314.aspx 第一部分: NAT介绍 各种不同类型的NAT(according to RFC)Full Cone NAT: 内网主机建立一个UDP socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配
2008-11-10 13:06:00
1272
原创 ubuntu下安装jdk
首先下载jdk的bin文件,我是从官网下的jdk-6u7的版本然后直接运行它 ./jdk-6u7... 安装完发现这个bin程序会在当前文件夹下建立一个jdk的文件夹,里面是所有相关文件要让系统知道这个java环境的存在,需要添加环境变量,编辑/etc/profile文件,加入如下内容export JAVA_HOME = /usr/java/jdk1.6.0_07export CLASSPATH
2008-10-05 10:03:00
379
原创 ubuntu硬盘安装
由于没有刻录机,尽管硬盘上空着一个10G的区域没有被windos使用,一直没敢装linux,仅仅在虚拟机上试试,后来听说用grub程序可以,决定搞一搞。中间失败多次,使得windos也进不去了,不过经过多次尝试,最后还是装上了。步骤大致如下:1. 需要下载linux的镜像光盘,我用的是unbuntu8.04,下载后放到fat32分区去(幸好我当初规划硬盘分区时留了一个fat32的),把grubfo
2008-09-20 10:09:00
548
原创 ACE读取ini格式的配置文档
不多说了,功能很清楚,从ini格式文档读取配置信息进来。不过在使用中发现好像读进来的数据只能是字符串类型(get_integer_value好像不管用)#include "ace/Configuration_Import_Export.h"ACE_Configuration_Heap config;ACE_Ini_ImpExp ini(config);config.op
2008-08-24 09:37:00
560
原创 bt协议当中一些易被滥用的地方
对于seeder缺少奖励机制使其留在网络中tracker成为系统瓶颈上传速率作为结点选择依据具有片面性一人多结点连接seeder,会使seeder对其他结点的上传减低,一人多节点连接其他peer,会妨碍其他peer找到更好的peer仅仅选择seeder下载数据,避免了上传仅仅以最低速率上传数据来防止被其他结点choke恶意结点发送不符合要求的chunk来获得较高的上传速率
2008-07-24 17:00:00
451
原创 c++循环包含一种解决方法
上次在一个设计当中遇到A类调用B类,B类又调用A类的问题,由于循环包含搞了半天,后来觉得还是将其用接口方式实现好一些,也就是将会被别人调用的方法写成抽象类放在一个公共文件中,包含的时候都使用抽象接口,如下面的例子:先设计一个公共包含的x.h#ifndef X_H#define X_Hclass ABase{public: virtual void aa() = 0;};class
2008-07-24 16:55:00
1216
原创 ACE log使用助记
基本使用:ACE_DEBUG ( (LM_DEBUG, "no file found/n") );ACE_DEBUG ( (LM_DEBUG, "piece%d", i) );ACE_ERROR_RETURN ( (LM_ERROR, "get file %s faild/n", filename), -1 ); log的严重等级有如下的几种:LM_TRACE Me
2008-07-20 11:28:00
1450
转载 从Windows移植到Linux
socket相关程序从windows移植到linux下需要注意的1)头文件windows下winsock.h/winsock2.hlinux下sys/socket.h错误处理:errno.h2)初始化windows下需要用WSAStartuplinux下不需要3)关闭socketwindows下closesocket(...)linux下clos
2008-07-10 13:54:00
927
原创 工厂模式简述
工厂模式的特点其实也是将抽象操作和具体类型隔离,将抽象操作放在基类,具体类型放在子类。例如我们定义一个汽车组装类,每种汽车都有组装流程,但是我们可以抽象出一系列操作,例如冲压外壳,喷漆,安装发动机,安装内饰等。这些操作可以对应于一个抽象的汽车类,这样就可以把全部的抽象放在两个基类里面:装配类和汽车类。然后在实现的时候可以定义具体的汽车型号。例如设计了一款家用的MPV车,就继承自抽象汽车类,然后
2008-07-09 20:59:00
1202
原创 windows控制台程序获取中断的简单程序
写简单的控制台程序的时候如果需要在用户通过Ctrl-C结束程序前进行一些收尾工作,那么首先要获取中断信号,下面程序是一个示例 #include #include#include void sigint_catch(int sig_no){ printf("will quit .../n"); if(SIGINT == sig_no){
2008-07-09 10:13:00
1750
原创 bt协议与emule协议几点区别
最近把emule协议通读了一下,和以前研究的bt协议做了个对比,当然差别还是相当大的,此处仅简单列出几点:bt协议不包括文件搜索,该过程要由用户自己进行,在找到感兴趣的文件后要首先获取一个torrent文件,根据该torrent文件找到服务器,进而找到其他peer;emule协议中的文件搜索也是由协议规定的,在结点启动的时候向服务器发起文件查询请求,服务器返回查询结果,进而得到相关的peer列
2008-06-25 21:08:00
3674
3
原创 ACE在linux下配置使用经验
虽然在windows上使用ACE已经比较熟练了,不过在linux上还用的不多,今天配置了一个环境,查了不少资料,最后才搞明白,不过还是值得的。首先是下载一个完整版程序(官方还提供单独源码的,没有试过)到系统上解压缩。然后在里面建立一个build文件夹,进入后运行configure和make,make install命令。在虚拟机上跑了好长时间才make完,make install完成后会把必要
2008-06-22 16:44:00
1528
原创 排列组合程序
今天忽然想起高中最基本的排列组合公式,想起用程序实现一下将排列组合各项列出来的功能。由于是递归写法,还是调试了一些时候才搞出来,不过感觉写法还是比较简洁的,记录在这里,还有改进余地。 typedef std::vector IntVec;typedef IntVec::iterator IntVecIter;//组合数的递归算法//begin i
2008-06-19 20:42:00
4805
iPica (MP4图片自动转换工具)
2009-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人