2012年10月3日
摘要: 前言 MS的kinec SDK和OpenNI都提供了人体骨骼跟踪的算法,人体骨骼跟踪算法在kinect人体行为识别中非常重要,该识别过程通常被用来作为行为识别的第一步,比如说,通过定位人体中的骨骼支架,可以提取出人手的部位,从而可以把手的部分单独拿出来分析,这样就达到了手势的定位,而后面的手势识别则可以在刚刚定位出的领域进行处理。总而言之,一套有效的人体骨架追踪算法在kinect的一系列应用中非常有用,不过MS SDK和OpenNI虽然都提供了该算法类的直调用,但是其源码并没有开放,毕竟这是人家最核心的东东。 开发环境:QtCreator2.5.1+OpenNI1.5.4.0+Qt4.... 阅读全文
posted @ 2012-10-03 10:48 tornadomeet 阅读(10960) 评论(4) 推荐(0) 编辑
  2012年10月2日
摘要: 前言 因为OpenNI可以获取到kinect的深度信息,而深度信息在手势识别中有很大用处,因此本文就来使用OpenNI自带的类来做简单的手势识别。识别的动作为4种,挥手,手移动,举手,往前推手。通过后面的实验可以发现,其实提供的类的效果非常不好。 开发环境:QtCreator2.5.1+OpenNI1.5.4.0+Qt4.8.2+OpenCV2.4.2 实验说明 跟手势相关的是GestureGenerator这个类,它的初始化过程和depth_metadata,image_metadata都一样,因此首先在上2篇文章的COpenNI类中增加一个public类对象GestureG... 阅读全文
posted @ 2012-10-02 08:39 tornadomeet 阅读(7670) 评论(2) 推荐(1) 编辑
  2012年10月1日
摘要: 前言 本文来结合下opencv的highgui功能显示kinect采集得来的颜色图和深度图。本来在opencv中自带了VideoCapture类的,使用该类可以直接驱动kinect设备,具体的可以参考下面的文章:http://blog.csdn.net/moc062066/article/details/6949910,也可以参考opencv提供的官方文档:http://docs.opencv.org/doc/user_guide/ug_highgui.html。这种方法用起来非常简单,不需要考虑OpenNI的驱动过程,有点像傻瓜式的操作。不过本人在使用该种方法时kinect一直驱动不成... 阅读全文
posted @ 2012-10-01 18:11 tornadomeet 阅读(11613) 评论(5) 推荐(1) 编辑
  2012年9月29日
摘要: 前言 在上一篇文章Kinect+OpenNI学习笔记之2(获取kinect的颜色图像和深度图像)中,已经介绍了怎样使用OpenNI来获取Kinect的深度数据和颜色数据,并将获取到的结果在Qt中显示,不过那个代码是写在同一个cpp文件中,以后用到的时候不能讲这些显示的基本过程单独拿出来,比较麻烦。所以这节主要是将OpenNI获取图像的流程以及Qt显示这些图像的结果分开为了2个类来写,方便以后工程的直接拷贝。 开发环境:QtCreator2.5.1+OpenNI1.5.4.0+Qt4.8.2 实验说明 COpenNI这个类主要是初始化kinect设备,并获取深度图像和颜色图像,参加上... 阅读全文
posted @ 2012-09-29 09:45 tornadomeet 阅读(6887) 评论(0) 推荐(1) 编辑
  2012年9月27日
摘要: 前言 网上有不少使用Qt做界面,OpenNI为库来开发kinect。或许大家的第一个问题就是询问该怎样使用Kinect来获取颜色信息图和深度信息图呢?这一节就是简单来回答这个问题的。 开发环境:QtCreator2.5.1+OpenNI1.5.4.0+Qt4.8.2 实验说明: 在使用OpenNI来驱动读取kinect数据时,我们需要了解context object这个名词。查看了下OpenNI UserGuide文档,简单翻译下这个名词的意思: Context是openNI中一个主要的object,它掌握了OpenNI使用过程中应用程序的全部状态,以及这些状态的prodecti... 阅读全文
posted @ 2012-09-27 23:15 tornadomeet 阅读(26716) 评论(14) 推荐(4) 编辑
  2012年9月26日
摘要: 前言 一般的普通摄像机获取的是RGB彩色图像,在计算机视觉领域,很大一部分都是基于颜色图像来做处理的,取得了不少研究成果。最近几年的深度图研究给计算机视觉和图像处理带来了更多的信息,因为所获取的图像多了一个维度的,通常也称之为RGBD图。比较物美价廉的深度信息获取传感器有MS的Kinect,同时还有ASUS的Xtion。这2种传感器都能较为准确的获得一定范围内物体的深度信息。比如说Kinect的参数信息图如下: 要想在视觉上达到AI的水平还有很长的路要走,深度信息的提供无疑给视觉处理多带来了一份希望,多了深度这一维的信息肯定是有用的,所以本人打算以后结合色彩信息和深度信息来做... 阅读全文
posted @ 2012-09-26 15:09 tornadomeet 阅读(28991) 评论(18) 推荐(4) 编辑
  2012年9月24日
摘要: 前言 本文主要介绍在Android中怎样来解析XML文件。主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包。作为接口,SAX是事件驱动型XML解析的一个标准接口。XML文件解析一般有2种方法,DOM和SAX。其中DOM需要先将xml文档全部读入到电脑内存中,当文档内容太大时,该方法并不适用。SAX就比较好的解决了该问题,它是逐行解析的,可以随时中断。但是SAX的操作比较复杂。因此,这2种方法各有优缺点,看具体应用情况。在前面的文章Qt学习之路_12(简易数据管理系统)中使用的是Qt中的DOM方法。 实验说明 大多数SAX实现都会... 阅读全文
posted @ 2012-09-24 10:11 tornadomeet 阅读(2336) 评论(0) 推荐(0) 编辑
  2012年9月23日
摘要: 前言 这一节实现一个简易的音乐播放器,其音乐播放的核心功能是采用Qt支持的Phonon框架,该框架在前一篇博文Qt学习之路_13(简易俄罗斯方块) 中已经使用过了,在俄罗斯方块中主要是用来设置背景音乐和消行的声音的。这里用这个框架同样是用来播放,暂停等多媒体的各种控制功能,另外该框架可以自动获取音频文件的一些信息,这样我们在设计播放列表时可以获取这些信息,比如歌手名,专辑名,时长,文件名等等。程序中桌面歌词的实现是继承了QLabel类,然后使用3层文本显示,最上面一层采用渐进显示的方式来达到歌词播放的动态效果。 实验的参考资料为http://www.yafeilinux.com/网站上... 阅读全文
posted @ 2012-09-23 18:37 tornadomeet 阅读(57657) 评论(8) 推荐(8) 编辑
  2012年9月22日
摘要: 前言 这一节主要学习在Qt中怎样使用图形视图框架,实验完成的是一个简易的俄罗斯方块游戏,有了图形视图框架的支持,该游戏的设计变得非常简单,不需要考虑很多复杂的算法,比如说方块的碰撞检测,旋转,视图的设计等。从本实验中可以学到2D图形的绘制,游戏的逻辑设计,图形视图的应用,动画设置,背景音乐的添加,Phonon框架的应用等知识。实验的参考资料为http://www.yafeilinux.com/ 网站上yafei作者提供的代码,本人只是看懂其源码然后自己敲了一遍,代码做了稍微的改变,其设计方法和技巧全是原创作者yafei的功劳。 实验说明 注意本实验没有使用QtDesigner来设计界... 阅读全文
posted @ 2012-09-22 19:24 tornadomeet 阅读(34838) 评论(8) 推荐(7) 编辑
  2012年9月19日
摘要: 前言 最近从大陆来到台湾,之间杂事很多,挤不出时间来更新博客… 这次主要是通过做一个简易的数据库管理系统,来学习在Qt中对数据库,xml,界面的各种操作,进一步熟悉Qt。一般而言数据通常存在文件,数据库,xml中,本文主要是介绍了sqlite,xml这2种存储数据的方法,实现了一个家用电器产品的销售小软件。参考资料为http://www.yafeilinux.com/ 代码基本也是作者yafei的,我只是看懂一些代码然后手动敲入加稍微修改而已。反正以学习他人的代码来进一步掌握Qt编程。 实验过程 该实验分为3个部分,商品管理,销售统计,和修改密码。 商品管理: 在程序运行时,已... 阅读全文
posted @ 2012-09-19 21:15 tornadomeet 阅读(39480) 评论(29) 推荐(7) 编辑
  2012年9月6日
摘要: 前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的。本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类。 开发环境:ubuntu12.04+Qt4.8.2+QtCreator2.5.1+opencv2.4.2 PCA数学理论: 关于PCA的理论,资料很多,公式也一大把,本人功底有限,理论方面这里就不列出了。下面主要从应用的角度大概来讲讲具体怎么实现数据集的降维。把原始数据中每个样本用一个向量表示,然后把所有样本组合起来构成一个矩阵。当然了,为了避免样本的单位的影响,样本集需要标准化。求该... 阅读全文
posted @ 2012-09-06 11:13 tornadomeet 阅读(58602) 评论(7) 推荐(3) 编辑
  2012年9月4日
摘要: 前言 Content Provider为存储数据和获取数据提供了统一的接口,它可以完成在不同应用程序下的数据共享,而在上一篇文章中Android开发历程_16(SQLite的使用)讲到的SQLite只能在同一个程序中共享数据。另外android为一些常见的数据,比如说音频,视频,图片,通讯录等提供了Content Provider,这样我们就可以很方便的对这些类型的数据操作了。使用ContentProvider的好处是开发人员不需要考虑数据内部是怎么存储的,比如说如果我们想利用ContenProvider来存数据,只需告诉insert函数该ContentProvider的uri和想存... 阅读全文
posted @ 2012-09-04 22:31 tornadomeet 阅读(3263) 评论(0) 推荐(1) 编辑
  2012年9月3日
摘要: 前言 SQLite是一种轻量级的小型数据库,虽然比较小,但是功能相对比较完善,一些常见的数据库基本功能也具有,在现在的嵌入式系统中使用该数据库的比较多,因为它占用系统资源很少。Android系统中也不例外,也是采用SQLite,本节中就学习下在andorid中怎样使用该数据库来存放数据,并且对SQLite完成简单的新建,更新,查询,删除等操作。 实验说明: Android中使用SQLite数据库时,需要用adb来辅助调试,如果想在windows下的cmd命令行中使用adb,必须先配置环境变量,我这里是配的用户环境变量path: C:\Program Files\android-s... 阅读全文
posted @ 2012-09-03 10:55 tornadomeet 阅读(2704) 评论(0) 推荐(1) 编辑
  2012年9月2日
摘要: 前言: 本文将介绍怎样用Qt做一个简单的多文档编辑器,该实验的过程中主要涉及到Qt窗口的设计,菜单栏(包括右击菜单),工具栏,状态栏,常见的文本文件等操作。参考资料为网址上的一个例子:http://www.yafeilinux.com/ 本来是在ubuntu下做这个实验的,可是一开始建立菜单栏等时,里面用的是中文,运行后中文就是不显示.在网上找了2天的办法,各种手段都试过了,什么编码方式啊,什么实用QTextCodec这个类啊都试过了,没成功。很不爽,暂时还是转到windows下吧。在ubuntu下只是简单的设计了该程序的界面,然后把那些代码弄到windows下后,打开main.p... 阅读全文
posted @ 2012-09-02 17:37 tornadomeet 阅读(16896) 评论(1) 推荐(3) 编辑
  2012年8月27日
摘要: Appwidget就是手机应用中常常放在桌面(即home)上的一些应用程序,比如说闹钟等。这种应用程序的特点是它上面显示的内容能够根据系统内部的数据进行更新,不需要我们进入到程序的内部去,比如说闹钟指针的摆动等。本节内容就简单的介绍下实现这种功能所用到的appwidget技术,通过3个例子由浅入深来学会使用它。参考资料是mars的教程。 实验基础: 自己实现一个AppWidget的步骤如下: 1. 在src目录下新建一个名为xml的文件夹,在该文件夹下新建一个xml文件,该xml文件的根标签为appwidget-provider. 该xml文件主要是对所建立的appwidget的一个... 阅读全文
posted @ 2012-08-27 21:33 tornadomeet 阅读(7393) 评论(1) 推荐(1) 编辑
摘要: 广播机制按照字面理解就是广于播之,在计算机网络中这个词比较常见,它的意思是说发送端把信息发送出去,是以广播的方式发送出去,该信息可以同时被多个接收端介绍,当然接收端也可以不接收,另外接收端介绍到这信息后怎么处理广播的发送端也是不用考虑的。因此广播机制还是挺有用的,利用广播信息可以为触发的一些事件发送消息。Android中的广播机制可以参考mars老师的这张图片: 如图所示,有多个广播接收者在android中注册过,当一个事件产生后,它可以发送一个广播信息,然后这些接收者来接收该信息。广播接收者的实现一般是写成一个类,该类继承android提供的类BroadcastReceiver,并... 阅读全文
posted @ 2012-08-27 09:40 tornadomeet 阅读(4214) 评论(4) 推荐(2) 编辑
  2012年8月26日
摘要: 这一小节我们要完成的任务是:将一张背景是黑色,中间是白亮色的星星图片和五颜六色的颜色进行色彩融合,变成一颗彩色的星星。并且让这些星星自转和公转,可以控制自转和公转的速度,另外也能控制所有的星星是否能够闪烁。 实验基础 色彩融合知识: 刚开始提到由黑白的星星变成彩色的星星用到的是色彩融合的知识,关于色彩融合,在上篇文章OpenGL_Qt学习笔记之_06(纹理滤波和光照)已经有了个简单的介绍,不过该知识点并没有想象中的那么简单。当我们有了一些简单的色彩混合知识后,可以通过下面这个函数来更一步加深我们的理解。 void glColor4f(GLfloat red,GLfloat gre... 阅读全文
posted @ 2012-08-26 10:26 tornadomeet 阅读(7934) 评论(0) 推荐(2) 编辑
  2012年8月25日
摘要: 本次实验主要是学习下opengl中光照的使用方法,opengl中的光照分为环境光,漫射光,镜面光,反射光4种,这里主要是学习环境光和漫射光的设置,同时对比下opengl中支持的几种纹理滤波方式的效果,另外也可以加入色彩融合效果。 纹理滤波 在上篇文章OpenGL_Qt学习笔记之_05(纹理映射)中我们采用的是GL_LINEAR方式进行滤波的,opengl还支持GL_NEAREST, GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LI... 阅读全文
posted @ 2012-08-25 10:55 tornadomeet 阅读(12414) 评论(1) 推荐(0) 编辑
  2012年8月24日
摘要: 纹理映射基础知识 什么叫纹理映射,一开始我也不明白,感觉这个词好专业(毕竟没有学过图形学),后面经过网上查找资料和这次实验稍微理解了点。纹理映射简单的讲,就是把一个纹理(其实说白了,纹理可以理解为一幅图像)映射到空间物体的表面上,因此纹理映射也叫贴图,这个表明不一定是矩形,比如说我可以是球面,或者是任意曲面。在上一篇文章OpenGL_Qt学习笔记之_04(3D图形的绘制和旋转)中,我们绘制的空间体的表面都是一些光滑的颜色,如果要在其表面采用那种方法绘制图像的话,则必须利用微分的思想,一个一个的绘制小图像,然后拼接起来,可想而知,这个过程是多么的复杂,opengl的纹理映射就可以很好的... 阅读全文
posted @ 2012-08-24 20:10 tornadomeet 阅读(14005) 评论(4) 推荐(2) 编辑
摘要: 绘制四棱锥 四棱锥由5个面构成一个封闭的立体图,其中4个共顶点的侧面是三角形,底面是个四边形。如果我们要绘制一个3D的四棱锥只需要绘制这5个面即可,绘制的方法和前一篇文章OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)的相同。只不过这里的顶点坐标是3维的,所以图像深度那一维不一定为0。因此我们可以事先计算好四棱锥各个顶点的坐标,这对学过立体几何的人来说应该是小case了。然后绘制每个面就可以。 注意,在opengl中绘制每个面时,所有面给出的顶点的顺序都要按照逆时针或者顺时针(我这里采用的是逆时针),这样才能保证所绘制出来的图像时正确的。 现在我们在paintGL中开始绘制... 阅读全文
posted @ 2012-08-24 15:41 tornadomeet 阅读(19130) 评论(1) 推荐(0) 编辑
  2012年8月23日
摘要: 在这一节中主要简单介绍下怎样给平面几何着色,以及怎样让绘制出来的几何图形旋转起来。在上一节OpenGL_Qt学习笔记之_02(绘制简单平面几何图形) 中已经介绍了如何利用opengl画一些简单的图像,那么这一节就在上面的基础上给它着色,且让他旋转。 实验基础 首先来看着色,其实着色在上篇文章中已经用过,使用的是函数glColor3f()。一旦我们使用这个函数着色后且不更改颜色,则后面所绘的图形都是这个颜色了。我们给多边形着色时,表面上看都是给它的顶点着色,其实因为我们在initializeGL()函数中已经设置过glShapeModel(GL_SMOOTH),即颜色阴影是平滑模式... 阅读全文
posted @ 2012-08-23 21:47 tornadomeet 阅读(11234) 评论(0) 推荐(1) 编辑
摘要: 本文来讲讲怎样使用opengl来画平面几何图形,这一节本来是很简单的,因为某些问题都弄大半天了。当然,这还是按照NeHe的教程来的学习的。这次实现的功能是在窗口中画一个三角形,一个矩形,一个圆形。首先来简单的看一下opengl中的基本坐标规则,如下图所示: 假设左下角那个点是人的眼睛观察的位置,则向左为x正方向,向上为y的正方向(这点与opencv中不同),向里为z的正方向。下面来看看怎么绘制平面几何图形。在设置好需要画的几何图形的属性后,比如颜色信息,就以glBegin()开始,以glEnd()结束,glBegin()中的参数为所画几何图形的类型,比如说GL_ TRIANGLES代表三角形. 阅读全文
posted @ 2012-08-23 15:56 tornadomeet 阅读(21836) 评论(3) 推荐(4) 编辑
  2012年8月22日
摘要: 很早就想学opengl的,一直没时间,今天心血来潮初步了解了下opengl。Opengl是对2D和3D图形支持很好,有非常多的优化函数,因为opengl的主要目标是图形功能函数上,所以它对图形界面的支持并不完善。当然了,作为一个跨平台的开源库,这是能理解的,因为每个平台开发界面用的工具不同,如果它只支持其一,那么私心也太重了,还不如节省精力放在核心的代码上。Qt的UI函数很多,它的Opengl封装很好,将opengl的函数和Qt的界面结合了起来,这主要是通过Qt中QGLWidget这个类来实现。所以一般我们开发opengl,且要用到Qt的界面时,这些类都可以从QGLWidget继承过来。本次试 阅读全文
posted @ 2012-08-22 22:30 tornadomeet 阅读(47477) 评论(16) 推荐(2) 编辑
  2012年8月20日
摘要: Service在android中的地位和activity,只是它没有单独的界面,一般都是在后台运行,主要是用来运行一些消耗时间比较长的任务。我们可以用它来发送intent来更新activity的UI。另外需要注意的是service既不是一个单独的进程,也不是一个单独的线程,它与activity一起在同一个进程中。 关于android的sevice,网上这篇文章对service做了比较详细的介绍,并通过启动音乐播放器的例子来讲解service:http://www.cnblogs.com/allin/archive/2010/05/15/1736458.html Service的生命周期... 阅读全文
posted @ 2012-08-20 12:53 tornadomeet 阅读(4633) 评论(0) 推荐(0) 编辑
  2012年8月19日
摘要: 本文主要介绍Android中Handler的简单使用方法,Handler跟多线程,消息队列联系很紧密,在平常的实际程序开发中比较常见。本文分为4个简单的例子来学校handler。 参考资料为Mars老师的教程,http://www.mars-droid.com/. 开发环境为android4.1. 例1 这个例子是最简单的介绍handler使用的,是将handler绑定到它所建立的线程中. 本次实验完成的功能是:单击Start按钮,程序会开始启动线程,并且线程程序完成后延时1s会继续启动该线程,每次线程的run函数中完成对界面输出nUpdateThread...文字,不停的运行... 阅读全文
posted @ 2012-08-19 22:06 tornadomeet 阅读(5297) 评论(0) 推荐(1) 编辑
摘要: 一些网络资料 关于Kalman滤波器的理论,其数学公式太多,大家可以去查看一些这方面的文献.下面这篇文章对Kalman滤波做了个通俗易懂的介绍,通过文章举的例子可以宏观上理解一下该滤波器,很不错,推荐一看: http://www.cnblogs.com/feisky/archive/2009/11/09/1599247.html, 他的另一篇博客http://www.cnblogs.com/feisky/archive/2009/12/04/1617287.html中介绍了opencv1.0版本的卡尔曼滤波的结构和函数定义等。 另外博文:http://blog.csdn.net/o... 阅读全文
posted @ 2012-08-19 15:00 tornadomeet 阅读(44930) 评论(10) 推荐(3) 编辑
  2012年8月17日
摘要: 在上篇博客特征点检测学习_1(sift算法)中简单介绍了经典的sift算法,sift算法比较稳定,检测到的特征点也比较多,其最大的确定是计算复杂度较高。后面有不少学者对其进行了改进,其中比较出名的就是本文要介绍的surf算法,surf的中文意思为快速鲁棒特征。本文不是专门介绍surf所有理论(最好的理论是作者的论文)的,只是对surf算法进行了下整理,方便以后查阅。 网上有些文章对surf做了介绍,比如: http://wuzizhang.blog.163.com/blog/static/78001208201138102648854/ surf算法原理,有一些简单介绍. ht... 阅读全文
posted @ 2012-08-17 23:51 tornadomeet 阅读(79688) 评论(34) 推荐(8) 编辑
  2012年8月16日
摘要: sift算法在cv领域的重要性不言而喻,该作者的文章引用率在cv界是number1.本篇博客只是本人把sift算法知识点整理了下,以免忘记。本文比较早的一篇博文opencv源码解析之(3):特征点检查前言1中有使用opencv自带的sift做了个简单的实验,而这次主要是利用Rob Hess的sift源码来做实验,其实现在的opencv版本中带的sift算法也是Rob Hess的,只是稍微包装了下。 首先网上有不少文章介绍了sift算法,写得都不错,比如: http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html... 阅读全文
posted @ 2012-08-16 22:25 tornadomeet 阅读(43223) 评论(7) 推荐(6) 编辑
  2012年8月15日
摘要: 一、网上一些参考资料 在博客目标检测学习_1(用opencv自带hog实现行人检测) 中已经使用了opencv自带的函数detectMultiScale()实现了对行人的检测,当然了,该算法采用的是hog算法,那么hog算法是怎样实现的呢?这一节就来简单分析一下opencv中自带 hog源码。 网上也有不少网友对opencv中的hog源码进行了分析,很不错,看了很有收获。比如: http://blog.csdn.net/raocong2010/article/details/6239431 该博客对该hog算法中用到的block,cell等概念有一定的图标解释... 阅读全文
posted @ 2012-08-15 20:42 tornadomeet 阅读(76964) 评论(32) 推荐(19) 编辑
  2012年8月9日
摘要: QtCreator中使用的是MinGW进行编译的,所以在windows下如果想要下载QtCreator就需要下载对应mingw的版本,而不是vs的,否则是编译不了的。或者自己下载Qt源码库,用Cmake中选中MinGW重新编译即可。所以如果安装Qt libraries 4.8.2 for Windows (minGW 4.4, 318 MB),则必须先安装QtCreator,因为QtCreator安装过程中会自动安装MinGW,而Qt libraries 4.8.2 for Windows (minGW 4.4, 318 MB)的安装又必须使用MinGW。因此这2者的顺序不可颠倒。但是自从Qt 阅读全文
posted @ 2012-08-09 09:33 tornadomeet 阅读(10958) 评论(3) 推荐(1) 编辑
摘要: 1. xml的注释不能出现在属性值代码中,不能出现在标记中。且注释格式为<!--注释内容-->2. xml语句结束后并不需要结束符号,比如说分号。3. xml中也是用alt+/来起提醒作用的。4. xml中的标签分为根标签和子标签。5. 线性布局中: android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。 android:paddingLeft指内边距左的距离,即控件内文字离控件左边边界的距离。其它的类推。 android:gravity指控件内文字相对于控件本身的方向属性,长度为dip,与像素独立的长度。 android:backgr 阅读全文
posted @ 2012-08-09 09:09 tornadomeet 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 1) 在实现从1个activity跳转到另一个activity时出现如下错误: Description Resource Path Location Type The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (HelloworldActivity.MyButtonListener) HelloworldActivity.java /helloworld/src/com/example/he... 阅读全文
posted @ 2012-08-09 09:06 tornadomeet 阅读(7641) 评论(0) 推荐(0) 编辑
摘要: 先装完jdk,再装elicpse和android,这2个只需解压到相应目录即可,无需安装,因为这2个程序的安装没有经过注册表。最后安装adk,在线安装的话就是最新版本的了,这时andriod-sdk版本可能不够,运行程序时会自动提示,那时更新即可。在工程中,每一个activity都对应一个xml文件,xml文件主要是控制各控件的位置和属性的.asserts目录下可以存放任何文件,res目录下也可以存放任意文件,且res下的文件会在gen目录下的R.java文件中自动生成一个全局id。res目录下的values目下的strings.xml中的控件也是每个控件都在R.jar中对应一个id号。当然l 阅读全文
posted @ 2012-08-09 08:58 tornadomeet 阅读(1281) 评论(0) 推荐(0) 编辑
  2012年8月7日
摘要: AnimationListener听名字就知道是对Animation设置监听器,说简单点就是在Animation动画效果开始执行前,执行完毕和重复执行时可以触发监听器,从而执行对应的函数。这种模式在实际运行过程中应该还是蛮有用的。 参考资料为Mars老师的教程,http://www.mars-droid.com/. 开发环境为android4.1. AnimaitonListener的使用方法主要是在Animation上设置一个监听器,即采用Animation的方法成员setAnimationListener().其参数就是监听器的函数。 现在来说说本次实验的功能,主要有2个按钮... 阅读全文
posted @ 2012-08-07 22:37 tornadomeet 阅读(15807) 评论(0) 推荐(1) 编辑
摘要: 在前面的博文Android开发历程_8(Tween Animation的2种属性设置方法)和博文Android开发历程_9(Frame Animation的使用)中介绍了Animation的初步使用,但是Tween Animation和Frame Animation的动态效果只适应一个控件,或者说多个控件同时执行一种效果。如果我们需要一个界面中的多个控件按照相同的动画方式但是每个控件完成该动画的时刻不同的话,就可采用本节讲的LayoutAnimationController来方便的完成了。 参考资料为Mars老师的教程,http://www.mars-droid.com/. 首先我... 阅读全文
posted @ 2012-08-07 09:58 tornadomeet 阅读(9719) 评论(3) 推荐(0) 编辑
  2012年8月6日
摘要: Amination的整体使用有2种方法,即Tween Animation和Frame Animation,在博客Android开发历程_8(Tween Animation的2种属性设置方法) 中已经介绍了Tween Animation的使用方法,且讲到了其2种属性设置方式。这一节就来看看Frame Animation的使用。参考资料为Mars老师的资料。 Frame Animation的应用不是很广,它主要是将一张张图片串联起来播放,人眼看上去就感觉在动一样,就是利用这种特性到达动态效果。所以我们必须提前准备各种能组成动画的图片。 使用时需要在res下的drawable文件夹中放入... 阅读全文
posted @ 2012-08-06 22:02 tornadomeet 阅读(1469) 评论(0) 推荐(0) 编辑
摘要: 在Android开发中,Animation是用来给控件制作效果的。大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放。在使用Animation时,可以在.java文件中用java代码对其进行设置,这样的优点是可以方便调试程序效果;另外一种方法就是在xml中对控件的属性做设置,好处是代码的重用性比较高,缺点是不方便调试。本节中就简单介绍下这2种方法的使用流程。参考资料为mars老师的教程。一、在java代码中使用Animation. 在java代码中使用Animation主要分为下面4个步骤。 创建一个AnimationSet类,AnimationSe... 阅读全文
posted @ 2012-08-06 19:54 tornadomeet 阅读(3693) 评论(0) 推荐(1) 编辑
  2012年8月3日
摘要: 本文主要介绍下opencv中怎样使用hog算法,因为在opencv中已经集成了hog这个类。其实使用起来是很简单的,从后面的代码就可以看出来。本文参考的资料为opencv自带的sample。 关于opencv中hog的源码分析,可以参考本人的另一篇博客:opencv源码解析之(6):hog源码分析 开发环境:opencv2.4.2+Qt4.8.2+ubuntu12.04+QtCreator2.5. 实验功能: 单击OpenImage按钮,选择需要进行人检测的一张图片,确定后自动显示出来。该图片的大小没限制。 单击PeopleDetect按钮,则程序会自动对该图片进行行人检测,且... 阅读全文
posted @ 2012-08-03 16:04 tornadomeet 阅读(67435) 评论(17) 推荐(5) 编辑
  2012年7月31日
摘要: QStatus的使用: 众所周知,状态栏一般显示系统的状态信息,比如进度,鼠标所在的行列等信息。这次是个简单的实验,在状态栏中加入进度条和label,以及用状态栏自带的方法显示信息,显示信息持续的时间可以由参数来确定。 注意状态栏下的addWidget和addPermenentWidge方法不同,addPermenentWidget是永久固定显示的,里面的内容不会更改,也不会被覆盖,而addWidget加入的widget在必要时候会被更改和覆盖。 让状态栏显示文本不是采用setText()方法,而是采用showMessage().其第二个参数为显示该内容持续的时间,以毫秒为单位。 ... 阅读全文
posted @ 2012-07-31 19:33 tornadomeet 阅读(13429) 评论(0) 推荐(1) 编辑
摘要: Qt界面设计中有model-based的List View,有Item-based的List Widget,关于这2者到底有什么区别,暂时也没弄太明白,这些都是界面设计中的设计模式,从MVC发展而来。以后用到的时候自然会明白的。 一般简单的都是用Item-based的List Widget,Qt中给出了List Widget,Tree Widget,Tabel Widget三种,这里就简单了解一下List Widget和Tree Widget的使用。Tabel Widget的使用应该也类似。 List Widget的使用 List Widget的使用比较简单,加入数据时直接用addIt... 阅读全文
posted @ 2012-07-31 11:51 tornadomeet 阅读(24055) 评论(2) 推荐(0) 编辑

阿萨德发斯蒂芬