2012年7月31日
摘要: 一、与文件目录操作有关操作。 Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句。 QDir::drives()是列出电脑根目录下的所有目录,返回的是QFileInfoList。利用其返回的QFileInfo,可以使用QFileInfo::absoluteFilePath()方法为返回其绝对路径。 Bool QDir::exists( constQString&name)是判断以参数中为路径名的路径是否存在,如果存在该路径则返回真。 boolQDir::mkpath( constQString&dirPath),该函数是创建以dirPa 阅读全文
posted @ 2012-07-31 07:18 tornadomeet 阅读(25419) 评论(1) 推荐(4) 编辑
  2012年7月30日
摘要: QtDesigner这个工具用来设计界面比较方便,如果使用之,则比用纯代码写要容易入手,但是有的时候用代码来写界面可以达到灵活的设计,所以也需要掌握之。 Qt中的布局有垂直布局,水平布局,这2种布局用法一模一样,在android中这种布局叫做叫做线性布局,我这里也暂这么叫着;另外1种为网格布局,即纵横交错;最后1种叫做form布局.下面简单介绍下用纯Qt C++语言进行垂直水平布局和网格布局。 首先来看布局: 效果如下: cpp代码和注释如下:#include <QApplication>#include <QPushButton>#include <QHBoxL 阅读全文
posted @ 2012-07-30 21:45 tornadomeet 阅读(7339) 评论(0) 推荐(3) 编辑
摘要: ListView控件的使用: ListView控件里面装的是一行一行的数据,一行中可能有多列,选中一行,则该行的几列都被选中,同时可以触发一个事件,这种控件在平时还是用得很多的。 使用ListView时主要是要设置一个适配器,适配器主要是用来放置一些数据。使用起来稍微有些复杂,这里用的是android自带的SimpleAdapter,形式如下:android.widget.SimpleAdapter.SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, Stri 阅读全文
posted @ 2012-07-30 14:42 tornadomeet 阅读(2185) 评论(0) 推荐(0) 编辑
摘要: 本次实验中主要是学习如何使用RadioGroup,CheckBox,RadioButton和Toast这几个控件,其中RadioButton是单选按钮,多个RadioButton放在一个RadioGroup控件中,也就是说每次只能有1个RadioButton被选中。而CheckBox是多选按钮,Toatst是android中带的一个用于显示提示小窗口消息的控件,其提示的内容过一会儿会自动消失。 RadioGroup和CheckBox控件设置监听器都是用的setOnCheckedChangeListener函数,其输入参数是一个函数,且函数内部要实现1个内部类。RadioGroup监听器... 阅读全文
posted @ 2012-07-30 08:10 tornadomeet 阅读(4351) 评论(0) 推荐(0) 编辑
  2012年7月29日
摘要: 相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的。相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一个控件的位置了。 本次实验就是显示如下的activity: 其中只有2个button,1个textview,1个edittext。 在相对布局中,一般用到的控件属性解释如下: 在相对布局中有如下属性,解释如下: android:layout_above 为将该控件的底部放在指定id控件的上方 android:layout_below 同理类似,将该控件的顶部放在指定id控件的下方 ... 阅读全文
posted @ 2012-07-29 22:15 tornadomeet 阅读(6248) 评论(0) 推荐(1) 编辑
摘要: 在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写相应的xml的代码,java代码不需要更改,因为我们这里只是练习android的界面设计。参考的资料为mars老师的教程。 线性布局: 线性布局就是将各种控件按照行或者列依次进行排列。 其中本实验用到的各控件的属性解释如下: android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。 android:paddingLeft指内边距左的距离,即控件内文字离控件左边边界的距离。其它的类推。 a... 阅读全文
posted @ 2012-07-29 20:13 tornadomeet 阅读(4842) 评论(0) 推荐(0) 编辑
摘要: Activity中有7个与生命周期有关的函数。其中onCreated()是activity第一次被启动时执行的,主要是初始化一些变量,onRestart()是当前activity重新被启动时调用的;绑定一些监听器等;onStart()是activity界面被显示出来的时候执行的;onResu... 阅读全文
posted @ 2012-07-29 16:19 tornadomeet 阅读(2973) 评论(0) 推荐(0) 编辑
摘要: 本次实验主要是完成输入2个数相乘,并显示其结果。共涉及到4个控件的使用学习,输入数字采用EditText,显示结果用TextView,运算按钮button以及菜单中的退出键。参考资料为mars老师的资料。 开发环境:android4.1. 实验功能: 在第一个界面中的2个乘数输入处分别输入2个数字,按下结果button,会自动跳到第二个界面并显示输入2个数字相乘的结果。如果在第一个界面中点击系统的menu按钮,则会自动弹出一个菜单,菜单栏包括退出和关于2个按钮,点击退出按钮,则退出了该程序。 实验说明: 1. 第1个activity的步骤大概如下: 创建一个监听器。 创建一个in... 阅读全文
posted @ 2012-07-29 14:48 tornadomeet 阅读(6105) 评论(0) 推荐(1) 编辑
  2012年7月28日
摘要: 今天第一次学习android开发,配置好了环境后就打算来个hello world程序,且实现从一个activity跳转到另一个activity中去。 开发环境:android4.1.1 实验功能: 在第一个Hello World!为标签的activity中显示good,该界面中有一个名为Next的按钮。点击Next按钮进入到第二个activity中去,第二个界面中只有1个Close按钮。当然,据网上有人将要比较安全的实现关闭程序的功能也不是挺简单的,因为android有专门的退出键返回键等。所以该Close按钮暂时没去实现它。 我的第1个activity为Hellowor... 阅读全文
posted @ 2012-07-28 22:21 tornadomeet 阅读(22907) 评论(0) 推荐(2) 编辑
  2012年7月26日
摘要: 本文主要介绍怎样使用opencv来对图片进行傅里叶变换,其核心函数是opencv自带的dft()。DFT这个技术手段是将空间域映射到频率域中去,在图像处理有着举足轻重的地位。这里我们只是得到其变换的结果并看看贫域图有什么特点。 开发环境:opencv2.4.2+Qt4.8.2+ubuntu12.04+QtCreator2.5 实验功能:单击Open Image按钮,手动选择打开一副图片,不管其是否是彩色图片,这里统一将其转换成灰度图像显示,因为需要加快DFT运算速度。将鼠标移动到图片显示区域,单击图片,这时会显示DFT中间结果图,也就是没有将低频域的点移动到图片的中心而已。显示的图片有... 阅读全文
posted @ 2012-07-26 17:21 tornadomeet 阅读(22257) 评论(0) 推荐(2) 编辑
  2012年7月25日
摘要: 本文主要介绍下opencv中自带的一个随机数发生器的类RNG,这里我用这个类来画一些图形,和基础学习笔记之opencv(13):基本绘图 一文中类似,只是 这里画出来图像的坐标,大小,颜色,角度等所有信息都是随机的,且是用RNG这个类产生的。参考文献为opencv自带tutiol及其代码。 开发环境:opencv2.4.2+Qt4.8.2+ubuntu12.04+QtCreator2.5 实验功能: 1. 该实验可以画6中几何图形和1个文本显示,每种都是画80个,每画完一个延时100ms。 2.打开软件后,默认画的图为直线。可以在软件的左下角Drawing T... 阅读全文
posted @ 2012-07-25 23:58 tornadomeet 阅读(5914) 评论(4) 推荐(1) 编辑
摘要: 本文主要讲讲怎样用opencv画一些基本图形,这些图形包括,直线,圆,椭圆,多边形等。参考资料为opencv自带tutiol及其code。 开发环境:ubuntu12.04+Qt4.8.2+QtCreator2.5+opencv2.4.2 实验功能: 1.单击Drawing1按钮,将会画出atom图形,并且可以看出该图形成的过程,共分5个步骤画,每画完1个部分会自动停留1s,以便观察,然后画下一个部分,直至完成atom图形。 2.单击Drawing2按钮,将会画出rook图形,并且可以看出该图形成的过程,共分3个步骤画,每画完1个部分会自动停留1s,以便观察,然后画下一个部分,... 阅读全文
posted @ 2012-07-25 16:28 tornadomeet 阅读(15513) 评论(0) 推荐(3) 编辑
  2012年7月24日
摘要: 本文主要讲讲怎样改变图片的对比度和亮度,其实就是图片像素值线性变化了而已,对比度对应线性变化的系数,亮度对应其常量。参考资料为opencv自带tutiol及其code. 开发环境:ubuntu12.04+opencv2.4.2+Qt4.8.2+QtCreator2.5. 实验功能: 单击Openimage按钮,在电脑中打开一张图片并显示出来。 拖动Contrast滑动条,改变对比度的值,可以看到对比度值的改变过程在滑动条下方显示,左边图片对应为其对比度改变后的效果。 拖动Brightness滑动条,改变亮度值,以看到亮度值的改变过程在滑动条下方显示,左边图片对应为其亮度改变后的... 阅读全文
posted @ 2012-07-24 10:34 tornadomeet 阅读(19104) 评论(0) 推荐(1) 编辑
  2012年7月23日
摘要: 本文主要讲的是怎样将2幅图片叠加,就像电影里面有时候出现的镜头一样,2幅图片可以按照不同比例重叠,当然这里主要是利用opencv自带的函数addWeighted().参考资料为opencv自带tutiol及其代码。 开发环境:ubuntu12.04+opencv2.4.2+Qt4.8.2+QtCreator2.5. 实验功能: 单击Open image1按钮,打开第1幅图片并在左边显示出来。 单击Open image2按钮,打开第2幅图片并在中间显示出来。 在Alpha栏输入第1幅图片在图片混合时所占的比例,这时Beta栏的值也会跟着改变,因为2着的比例之和为1.0. 同理,在... 阅读全文
posted @ 2012-07-23 22:55 tornadomeet 阅读(8095) 评论(0) 推荐(1) 编辑
摘要: 本文主要讲讲怎样对Mat矩阵进行mask操作,其实也就是对Mat矩阵的滤波操作,俗称卷积,参考文献为opencv自带的tutiol及其code. 开发环境:ubuntu12.04+opencv2.4.2+Qt4.8.2+QtCreator2.5. 实验功能: 单击Open image按钮,手动选择所需滤波的原图片。 单击Setting按钮,弹出对话框,选择滤波所用的模式,这里有2种模式,分别为自己实现滤波功能和采用opencv自带的滤波函数filter2D实现。 单击Process按钮,实现图片滤波过程,并将滤波结果显示在图片窗口中。 滤波完成后,图片下方法显示滤波所采用的模式... 阅读全文
posted @ 2012-07-23 18:21 tornadomeet 阅读(14379) 评论(0) 推荐(1) 编辑
  2012年7月22日
摘要: 本文来讲讲Mat存储的像素该怎么对其进行扫描?扫描的效率又如何? 文章参考opencv自带的tutiol及其code。 实验功能: 可以手动选择打开电脑上的图片。 对4种对Mat矩阵的扫描方法效率进行比较,这4种扫描方法分别为:连续内存直接访问;用迭代器进行访问;直接像素点进行访问;用LUT查找表进行访问;这4种扫描方法可以在菜单栏进行选择。 这些访问完后是将每个访问到的像素点的像素进行压缩,压缩间隔可以在软件的界面中进行修改。 软件的下端显示每种次扫描方法扫描打开的图片所用的平均时间(程序中设定为求100次的平均值) 实验说明: 通过本次实验,下面几点需要... 阅读全文
posted @ 2012-07-22 23:33 tornadomeet 阅读(9673) 评论(1) 推荐(3) 编辑
  2012年7月19日
摘要: 实验说明: 本文主要讲一些opencv 2.0版本后出现的Mat矩形类,主要是参考opencv自带doc文件夹下的tutiol教材。通过这次实验觉得用Mat的话下面几点需要特别注意(在代码中可以体现出来):利用create函数重新改变Mat数据在内存中的布局。注意多通道数据在Mat中其实也是占一个元素的位置的。学会多维Mat的创建方法。当Mat矩阵比较小时,学会直接赋值的方法,即用Mat_。 5. 掌握Mat矩阵内容输出到终端时的几种常见格式。 6. 注意如果vector是单独一维的话需要转换成Mat才能输出,多维的可以直接输出,例如vector里面存放的是点的话。 开发环境:... 阅读全文
posted @ 2012-07-19 15:33 tornadomeet 阅读(11411) 评论(0) 推荐(2) 编辑
  2012年7月18日
摘要: 在SVM中经常听说核函数,关于各种核函数的推导公式写得天花乱坠。SVM大概意思是说将低维不可分的样本映射到高维空间中后就线性可分了,由于最后用训练出来的模型进行分类预测 时需要求高维空间中映射特征间的内积,而核函数的功能就是我们计算时不需要考虑高维空间的具体形式,降低了其计算复杂度。 下面就简单讲讲核函数的作用,当然这里是以2分类器为例。 首先我们需要了解我们的目的是用训练样本学习到一个线性的表达式,即下面的公式: (1) 通过训练数据可以学校到其中的权值向量w... 阅读全文
posted @ 2012-07-18 16:35 tornadomeet 阅读(3968) 评论(0) 推荐(1) 编辑
  2012年7月16日
摘要: 实验说明: 在上一讲EM算法学习笔记_1(对EM算法的简单理解) 中已经用通俗的语言简单的介绍了下EM算法,在这一节中就采用opencv自带的一个EM sample来学习下opencv中EM 算法类的使用,顺便也体验下EM 算法的实际应用。 环境:Ubuntu12.04+Qt4.8.2+QtCreator2.5+opencv2.4.2 在这里需要使用2个与EM算法有关的类,即CvEM和CvEMParams,这2个类在opencv2.4.2已经放入legacy文件夹中了,说明不久就会被淘汰掉,因为在未来的opencv版本中,将采用Algorithm这个公共类来统一接口。不过CvEM和... 阅读全文
posted @ 2012-07-16 08:31 tornadomeet 阅读(8671) 评论(2) 推荐(1) 编辑
  2012年7月14日
摘要: 因做实验的需要,最近在学习EM算法,算法介绍的资料网上是有不少,可是没有一篇深入浅出的介绍,算法公式太多,比较难懂,毕竟她是ML领域10大经典算法之一 ,且一般是结合GMM模型的参数估计来介绍EM的。看过不少EM的资料,现将自己对EM算法用稍微通俗点的文字写下来,当然你可以用GMM这个具体的例子来帮助理解。 问题的提出:给定一些样本数据x,且知道该数据是有k个高斯混合产生的,现在要用给的样本数据x去估计模型的参数sida,即在该参数sida下产生x数据的概率最大。(其实就是个MLE估计)原问题等价与求sida,使得满足max(logP((x/sida))),那么我们为什么不直接用MLE去... 阅读全文
posted @ 2012-07-14 18:20 tornadomeet 阅读(8659) 评论(6) 推荐(0) 编辑
  2012年7月12日
摘要: 在计算机视觉和图像处理中,用matlab来验证算法的有效性是非常重要的,可以作为前期工作,因为matlab比c/c++等编程要来得简单些,不需要考虑那么多的数据类型和变量定义等。因此matlab在图像和视觉处理领域的这个得力工具也是需要掌握的。这一节简单介绍一些matlab自带函数实现图像,视频,摄像头数据的读取和显示方法(因为刚入门,方法可能不是很好)。一、图片的读取和显示。 比较简单,一个imread和imshow就可以搞定,类似opencv的用法,代码如下:imshow( imread('lena.jpg') );二、视频的读取和显示 视频数据的读取要用到VideoRea 阅读全文
posted @ 2012-07-12 15:16 tornadomeet 阅读(14361) 评论(0) 推荐(1) 编辑
  2012年7月10日
摘要: 本文的开发环境:ubuntu12.04LTS+QtCreator2.5.0+Qt4.8.2+opencv2.4.2其中Qt的安装方法参考:http://www.linuxidc.com/Linux/2011-02/32536.htmQtCreator的安装方法参考:http://www.linuxidc.com/Linux/2012-06/62607.htmopencv的安装方法参考:http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/以上3个软件均是指在ubuntu下的安装,其中Qt和ope 阅读全文
posted @ 2012-07-10 15:03 tornadomeet 阅读(31112) 评论(9) 推荐(1) 编辑
摘要: 1.用apt-get命令安装一些软件包时,报错:E:could not get lock /var/lib/dpkg/lock -open等出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。解决方法:输入以下命令 sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock之后再安装想装的包,即可解决。 2.将笔记本到显示器变成黑屏,有利于其一边工作一边散热,且对周围到影响减小,不过感觉也不是真正到黑屏,还是有一些光发出来到。gnome-... 阅读全文
posted @ 2012-07-10 10:32 tornadomeet 阅读(1649) 评论(0) 推荐(0) 编辑
  2012年7月8日
摘要: (注:装Ubuntu12.04前,我已经装有Xp Sp3和Ubuntu11.04这2个系统用了,其中Ubuntu是全硬盘安装的,也就是用u盘安装的,默认为第一启动系统.现在这2个系统组合用快一年,所以Xp速度已经很慢了,因此重新用U盘装了个Xp系统。现在又出了Ubuntu12.04,所以打算干脆同时也把linux给换了。因为装的过程中出现了些小小的麻烦,所以写了个简单的笔记以供后面用到时再来看) 1. 首先用制作Ubuntu12.04的U盘启动盘。方法是: 安装UltraISO软件; 快速格式化u盘; 在官网上下载ubuntu-12.04-desktop-i386.iso; 双击ub... 阅读全文
posted @ 2012-07-08 12:51 tornadomeet 阅读(3283) 评论(0) 推荐(0) 编辑
  2012年7月7日
摘要: 环境: XP SP3 +32位系统+ VS2010 + opencv2.4.2步骤1: 到这来选择下载 opencv2.4.2.exe .步骤2: 双击exe解压到自己想安装的目录,我这来是解压完后的目录为: C:\ProgramFiles\opencv2.4.2步骤3: 配置环境变量,在系统环境变量和用户环境变量下均配置下面2个环境变量(没有测试过是否2个地方都需要配置) 变量名: 变量值:PATH: C:\Program Files\opencv2.4.2\build\x86\vc10\bin TBB: C:\Program Files\opencv2.4.2\build... 阅读全文
posted @ 2012-07-07 10:32 tornadomeet 阅读(16895) 评论(20) 推荐(1) 编辑
  2012年7月6日
摘要: 读Thi, T. H., L. Cheng, et al. (2010). Implicit motion-shape model: a generic approach for action matching, IEEE. 本文作者是通过对连续的视频帧来构造一个MHI图像,然后把MHI图像分成若干个运动——形状区域(即Motion-Shape regions),其实也就是对MHI图像进行特征点检测,这样一个动作视频就被一些稀疏的3维时空特征块表示了。接着作者将这些这些特征块整合到一个3维的ISM模型中,然后检测过程用广义的Hough变换对该模型进行投影,最后采用的是meanshift算法找. 阅读全文
posted @ 2012-07-06 19:37 tornadomeet 阅读(1350) 评论(5) 推荐(0) 编辑
  2012年7月4日
摘要: 在上2次文章Qt学习之路_5(Qt TCP的初步使用) Qt学习之路_4(Qt UDP的初步使用)中已经初步介绍了群聊功能和文件传输功能,这一节中主要在这个基础上加入一个私聊功能。 参考文献依旧是:《Qt及Qt Quick开发实战精解》一书中的第5个例子以及http://www.yafeilinux.com/ 网站上的源码。另外这次的私聊功能也是参考网友http://www.qtcn.org/bbs/read-htm-tid-32609.html的,他的程序有些bug,其中最严重的bug是当私聊第二次聊天的时候对方会接收不到信息。这次主要是将这个bug和其它一些小bug修补了,但是仍... 阅读全文
posted @ 2012-07-04 15:54 tornadomeet 阅读(38506) 评论(31) 推荐(5) 编辑
  2012年6月30日
摘要: 在上一篇博文Qt学习之路_4(Qt UDP的初步使用) 中,初步了解了Qt下UDP的使用,这一节就学习下TCP的使用。2者其实流程都差不多。当然了,本文还是参考的《Qt及Qt Quick开发实战精解》一书中的第5个例子,即局域网聊天工具中的UDP聊天和TCP文件传送部分。另外http://www.yafeilinux.com/上有其源码和相关教程下载。 其发送端界面如下: 接收端界面如下: 发送端,也即承担服务器角色的操作: 在主界面程序右侧选择一个需要发送文件的用户,弹出发送端界面后,点击打开按钮,在本地计算机中选择需要发送的文件,点击发送按钮,则进度条上会显示当前文件传... 阅读全文
posted @ 2012-06-30 14:46 tornadomeet 阅读(44658) 评论(1) 推荐(2) 编辑
  2012年6月28日
摘要: 为了使用Qt自带的Socket进行网络编程,先必须熟悉Socket编程的原理,另外还需对Qt一些基本类的操作比较熟悉。由于刚接触不久,所以还是以看人家的代码来学习。这次主要是学Qt下UDP的编程,且熟悉一些Qt下代码的编写流程,所以本文参照的是《Qt及Qt Quick开发实战精解》一书中的第5个例子:局域网聊天工具中的UDP聊天部分。 另外http://www.yafeilinux.com/ 上有其源码和相关教程下载。 该程序实现的功能是:局域网内,每个用户登录到聊天软件,则软件界面的右端可以显示在线用户列表,分别显示的是用户名,主机名,ip地址。软件左边那大块是聊天内容显示界面,这里... 阅读全文
posted @ 2012-06-28 19:28 tornadomeet 阅读(62828) 评论(22) 推荐(3) 编辑
  2012年6月27日
摘要: 在Qt中是使用信号与槽的机制来完成事件的响应过程的。网上Qt的开发基于Qt Creator的资料比较多,基于vs下的资料除了其环境配置方面的外就剩下很少了。开始以为2者环境下的开发方式相同,后面稍微接触了下发现还是有微妙的区别的,Qt在vs下毕竟是add-in嵌入的,用起来不如Creator中方便,比如对某控件而已不能自动go to slot,所以一些固定格式的代码需要自己手动添加,幸运的是,2者下的开发大致相同。 本文按官网上一篇英文资料操作了一遍,初步体验了Qt中的信号与槽的机制,网址为: http://doc.qt.nokia.com/vs-add-in-1.1.7/vs-add... 阅读全文
posted @ 2012-06-27 19:32 tornadomeet 阅读(10094) 评论(1) 推荐(0) 编辑
  2012年6月25日
摘要: 当装完了在vs下编译好了的Qt和Qt Visual Studio Add-in后,我们就可以用VS来进行Qt方面的开发了。 在VS下新建一个Qt工程,选择Qt Application项,如下图所示: 输入项目名称和确定项目目录(注意Qt相关的项目目录中不能包含中文文字),此处我用的项目名是first_experience直接点击finish,采用默认配置。 双击打开first_experience.ui文件,随便拖几个图标什么的做个界面,反正我们只是用来显示界面而已,不实现其他功能。我随便弄了个界面如下所示: 下面我们就用4种方法实现当程序运行时显示上面界面的功能。 法1... 阅读全文
posted @ 2012-06-25 12:10 tornadomeet 阅读(9188) 评论(1) 推荐(0) 编辑
  2012年6月24日
摘要: Deep Learning学习笔记:Deep learning:五十一(CNN的反向求导及练习)Deep learning:五十(Deconvolution Network简单理解)Deep learning:四十九(RNN-RBM简单理解)Deep learning:四十八(Contractive... 阅读全文
posted @ 2012-06-24 19:39 tornadomeet 阅读(44459) 评论(25) 推荐(18) 编辑
  2012年6月23日
摘要: ( 注:本文为这学期一个作业,关于粒子滤波的介绍在前面2篇博客中已提到过,即:目标跟踪学习笔记_2(particle filter初探1) 目标跟踪学习笔记_3(particle filter初探2)前面2篇博客已经提到当粒子数增加时会内存报错,后面又仔细查了下程序,是代码方面的问题。所以本次的代码与前几次改变比较小。当然这些code基本也是参考网上的。代码写得很不规范,时间不够,等以后有机会将其优化并整理成类的形式。) Opencv实现粒子滤波算法摘要 本文通过opencv实现了一种目标跟踪算法——粒子滤波算法,算法的思想来源于文献[1][2],且在其思想上稍微做了些修改。其大概过程是:首. 阅读全文
posted @ 2012-06-23 11:01 tornadomeet 阅读(13772) 评论(12) 推荐(3) 编辑
  2012年6月22日
摘要: 这是本学期一门课程的论文。(注:本人看过的行为识别特征提取方面的文章就10来篇,所以本综述大部分内容是参考其他人的综述的,有些并不是自己的成果,个人功底还没这么雄厚…)行为识别特征提取综述摘要 人体行为识别目前处在动作识别阶段,而动作识别可以看成是特征提取和分类器设计相结合的过程。特征提取过程受到遮挡,动态背景,移动摄像头,视角和光照变化等因素的影响而具有很大的挑战性。本文将较全面的总结了目前行为识别中特征提取的方法,并将其特征划分为全局特征和局部特征,且分开介绍了其优缺点。关键字: 行为识别 特征提取 全局特征 局部特征1. 前言 如今人体行为识别是计算机视觉研究的一个热点,人体行为识... 阅读全文
posted @ 2012-06-22 10:38 tornadomeet 阅读(20195) 评论(8) 推荐(3) 编辑
  2012年6月6日
摘要: Meanshift不仅可以用于图像滤波,视频跟踪,还可以用于图像分割。 一般而言一副图像的特征点至少可以提取出5维,即(x,y,r,g,b),众所周知,meanshift经常用来寻找模态点,即密度最大的点。所以这里同样可以用它来寻找这5维空间的模态点,由于不同的点最终会收敛到不同的峰值,所以这些点就形成了一类,这样就完成了图像分割的目的,有点聚类的意思在里面。 有一点需要注意的是图像像素的变化范围和坐标的变化范围是不同的,所以我们在使用窗口对这些数据点进行模态检测时,需要使用不同的窗口半径。因此在opencv自带的meanshift分割函数pyrMeanShiftFiltering()... 阅读全文
posted @ 2012-06-06 19:28 tornadomeet 阅读(54717) 评论(15) 推荐(0) 编辑
  2012年6月5日
摘要: 这个也是本学期模式识别的一个小作业题。实验目的:采用神经网络的方法对二维双螺旋样本点进行分类。实验数据:由于本次的实验数据是双螺旋,需要用数学公式产生,其产生方法见参考文献[1]. 即由下面的公式产生: 实验数据分为2部分:训练数据和测试数据。由于双螺旋曲线有自己的方程表达式,我们产生的测试数据不能与训练数据一样,否则训练出来的网络没有说服力,因此我们在程序中2个样本集在双螺旋曲线上的采样间隔不同,且起始位置不同,这样保证了测试样本和训练样本的数据集没有重叠,训练出来的模型的分类能力更具有说服力。 下图是试验过程中产生的训练样本和测试样本分布图: 其中训练样本200个,每条螺... 阅读全文
posted @ 2012-06-05 22:18 tornadomeet 阅读(13681) 评论(2) 推荐(3) 编辑
摘要: 安装matlab2012a后运行matlab是,出现如下错误: 解决方法是: a. 在matlab安装目录下搜索:pathdef.m文件添加到**toolbox\local\下。 b. 然后在matlab命令行窗口运行restoredefaultpath和matlabrc命令。 c. 依次点击file->set path->default.保存后退出。 2.在使用matlab的神经网络训练函数train时,经常会出现如下错误提示: 即function ’subsindex’ is not defined for values of class ‘network’…… 原因是... 阅读全文
posted @ 2012-06-05 20:26 tornadomeet 阅读(3288) 评论(2) 推荐(0) 编辑
  2012年6月4日
摘要: 本次所讲的是libsvm在matlab中的2个应用实例,是本学期模式识别的2个编程作业题。一、16棋盘格数据分类试验目的:产生16棋盘的训练数据,用svm训练出一个模型,然后对新来的样本进行分类预测。试验说明:训练数据样本数为1600个,即每个格子中随机产生100个数据点,分为2类,2种颜色分布在16个格子中,相交分布。测试数据样本点数为320个,即每个格子中的数据点为20个。如果分类预测正确,则用绿色画出,预测错误,则用红色画出。实验结果: 产生的训练样本分布图如下所示: 训练样本分布图如下: 预测结果如下(如果分类正确用绿色显示,否则用红色显示): 实验结果评价... 阅读全文
posted @ 2012-06-04 16:45 tornadomeet 阅读(20281) 评论(3) 推荐(1) 编辑
  2012年6月2日
摘要: 在前面的博文《初步体验libsvm用法1(官方自带工具)》:http://www.cnblogs.com/tornadomeet/archive/2012/04/12/2443993.html 中已经初步介绍了使用官方自带的svm几个exe文件来可视化操作分类问题,但是在实际编程中,svm的训练和预测有可能只是项目工程的一部分,嵌入在其中了。我们不能单独拿出来处理。所以libsvm需要与其他的计算机语言平台相结合。 这一节主要讲libsvm在matlab下的初步体验。 我的matlab版本为matlab(R2011b),c/c++编译器为vs c++2010(32位)。这里需要注意的是... 阅读全文
posted @ 2012-06-02 20:26 tornadomeet 阅读(9292) 评论(4) 推荐(0) 编辑
摘要: 前面已经有3篇博文介绍了背景减图方面相关知识(见下面的链接),在第3篇博文中自己也实现了gmm简单算法,但效果不是很好,下面来体验下opencv自带2个gmm算法。 opencv实现背景减图法1(codebook和平均背景法) http://www.cnblogs.com/tornadomeet/archive/2012/04/08/2438158.html opencv实现背景减图法2(帧差法) http://www.cnblogs.com/tornadomeet/archive/2012/05/01/2477629.html opencv实现背景减图法3(GMM) http... 阅读全文
posted @ 2012-06-02 10:59 tornadomeet 阅读(31935) 评论(15) 推荐(3) 编辑

阿萨德发斯蒂芬