Qt学习之路_10(Qt中statusBar,MessageBox和Timer的简单处理)
摘要:QStatus的使用: 众所周知,状态栏一般显示系统的状态信息,比如进度,鼠标所在的行列等信息。这次是个简单的实验,在状态栏中加入进度条和label,以及用状态栏自带的方法显示信息,显示信息持续的时间可以由参数来确定。 注意状态栏下的addWidget和addPermenentWidge方法不同,addPermenentWidget是永久固定显示的,里面的内容不会更改,也不会被覆盖,而addWidget加入的widget在必要时候会被更改和覆盖。 让状态栏显示文本不是采用setText()方法,而是采用showMessage().其第二个参数为显示该内容持续的时间,以毫秒为单位。 ...
阅读全文
posted @
2012-07-31 19:33
tornadomeet
阅读(13460)
推荐(1) 编辑
Qt学习之路_9(Qt中Item Widget初步探索)
摘要: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
阅读(24076)
推荐(0) 编辑
Qt学习之路_8(Qt中与文件目录相关操作)
摘要:一、与文件目录操作有关操作。 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
阅读(25430)
推荐(4) 编辑
Qt学习之路_7(线性布局和网格布局初步探索)
摘要:QtDesigner这个工具用来设计界面比较方便,如果使用之,则比用纯代码写要容易入手,但是有的时候用代码来写界面可以达到灵活的设计,所以也需要掌握之。 Qt中的布局有垂直布局,水平布局,这2种布局用法一模一样,在android中这种布局叫做叫做线性布局,我这里也暂这么叫着;另外1种为网格布局,即纵横交错;最后1种叫做form布局.下面简单介绍下用纯Qt C++语言进行垂直水平布局和网格布局。 首先来看布局: 效果如下: cpp代码和注释如下:#include <QApplication>#include <QPushButton>#include <QHBoxL
阅读全文
posted @
2012-07-30 21:45
tornadomeet
阅读(7347)
推荐(3) 编辑
Android开发历程_7(ListView和ProgressBar控件的学习)
摘要: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
阅读(2189)
推荐(0) 编辑
Android开发历程_6(RadioButton和CheckBox的使用)
摘要:本次实验中主要是学习如何使用RadioGroup,CheckBox,RadioButton和Toast这几个控件,其中RadioButton是单选按钮,多个RadioButton放在一个RadioGroup控件中,也就是说每次只能有1个RadioButton被选中。而CheckBox是多选按钮,Toatst是android中带的一个用于显示提示小窗口消息的控件,其提示的内容过一会儿会自动消失。 RadioGroup和CheckBox控件设置监听器都是用的setOnCheckedChangeListener函数,其输入参数是一个函数,且函数内部要实现1个内部类。RadioGroup监听器...
阅读全文
posted @
2012-07-30 08:10
tornadomeet
阅读(4355)
推荐(0) 编辑
Android开发历程_5(Activity相对布局)
摘要:相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的。相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一个控件的位置了。 本次实验就是显示如下的activity: 其中只有2个button,1个textview,1个edittext。 在相对布局中,一般用到的控件属性解释如下: 在相对布局中有如下属性,解释如下: android:layout_above 为将该控件的底部放在指定id控件的上方 android:layout_below 同理类似,将该控件的顶部放在指定id控件的下方 ...
阅读全文
posted @
2012-07-29 22:15
tornadomeet
阅读(6251)
推荐(1) 编辑
Android开发历程_4(Activity线性布局和表格布局)
摘要:在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写相应的xml的代码,java代码不需要更改,因为我们这里只是练习android的界面设计。参考的资料为mars老师的教程。 线性布局: 线性布局就是将各种控件按照行或者列依次进行排列。 其中本实验用到的各控件的属性解释如下: android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。 android:paddingLeft指内边距左的距离,即控件内文字离控件左边边界的距离。其它的类推。 a...
阅读全文
posted @
2012-07-29 20:13
tornadomeet
阅读(4848)
推荐(0) 编辑
Android开发历程_3(Activity生命周期)
摘要:Activity中有7个与生命周期有关的函数。其中onCreated()是activity第一次被启动时执行的,主要是初始化一些变量,onRestart()是当前activity重新被启动时调用的;绑定一些监听器等;onStart()是activity界面被显示出来的时候执行的;onResu...
阅读全文
posted @
2012-07-29 16:19
tornadomeet
阅读(2977)
推荐(0) 编辑
Android开发历程_2(实现简单的乘法计算)
摘要:本次实验主要是完成输入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
阅读(6115)
推荐(1) 编辑
Android开发历程_1(从1个activity跳转到另一个activity)
摘要:今天第一次学习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
阅读(22919)
推荐(2) 编辑
基础学习笔记之opencv(15):离散傅里叶变换
摘要:本文主要介绍怎样使用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
阅读(22267)
推荐(2) 编辑
基础学习笔记之opencv(14):随机数发生器&绘制文字
摘要:本文主要介绍下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
阅读(5916)
推荐(1) 编辑
基础学习笔记之opencv(13):基本绘图
摘要:本文主要讲讲怎样用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
阅读(15519)
推荐(3) 编辑
基础学习笔记之opencv(12):改变图像对比度和亮度
摘要:本文主要讲讲怎样改变图片的对比度和亮度,其实就是图片像素值线性变化了而已,对比度对应线性变化的系数,亮度对应其常量。参考资料为opencv自带tutiol及其code. 开发环境:ubuntu12.04+opencv2.4.2+Qt4.8.2+QtCreator2.5. 实验功能: 单击Openimage按钮,在电脑中打开一张图片并显示出来。 拖动Contrast滑动条,改变对比度的值,可以看到对比度值的改变过程在滑动条下方显示,左边图片对应为其对比度改变后的效果。 拖动Brightness滑动条,改变亮度值,以看到亮度值的改变过程在滑动条下方显示,左边图片对应为其亮度改变后的...
阅读全文
posted @
2012-07-24 10:34
tornadomeet
阅读(19120)
推荐(1) 编辑
基础学习笔记之opencv(11):图像混合
摘要:本文主要讲的是怎样将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
阅读(8098)
推荐(1) 编辑
基础学习笔记之opencv(10):Mat mask操作
摘要:本文主要讲讲怎样对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
阅读(14391)
推荐(1) 编辑
基础学习笔记之opencv(9):Mat图像扫描
摘要:本文来讲讲Mat存储的像素该怎么对其进行扫描?扫描的效率又如何? 文章参考opencv自带的tutiol及其code。 实验功能: 可以手动选择打开电脑上的图片。 对4种对Mat矩阵的扫描方法效率进行比较,这4种扫描方法分别为:连续内存直接访问;用迭代器进行访问;直接像素点进行访问;用LUT查找表进行访问;这4种扫描方法可以在菜单栏进行选择。 这些访问完后是将每个访问到的像素点的像素进行压缩,压缩间隔可以在软件的界面中进行修改。 软件的下端显示每种次扫描方法扫描打开的图片所用的平均时间(程序中设定为求100次的平均值) 实验说明: 通过本次实验,下面几点需要...
阅读全文
posted @
2012-07-22 23:33
tornadomeet
阅读(9682)
推荐(3) 编辑
基础学习笔记之opencv(8):Mat - 基本图像容器
摘要:实验说明: 本文主要讲一些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
阅读(11417)
推荐(2) 编辑
一些知识点的初步理解_6(核函数,ing...)
摘要:在SVM中经常听说核函数,关于各种核函数的推导公式写得天花乱坠。SVM大概意思是说将低维不可分的样本映射到高维空间中后就线性可分了,由于最后用训练出来的模型进行分类预测 时需要求高维空间中映射特征间的内积,而核函数的功能就是我们计算时不需要考虑高维空间的具体形式,降低了其计算复杂度。 下面就简单讲讲核函数的作用,当然这里是以2分类器为例。 首先我们需要了解我们的目的是用训练样本学习到一个线性的表达式,即下面的公式: (1) 通过训练数据可以学校到其中的权值向量w...
阅读全文
posted @
2012-07-18 16:35
tornadomeet
阅读(3974)
推荐(1) 编辑
EM算法学习笔记_2(opencv自带EM sample学习)
摘要:实验说明: 在上一讲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
阅读(8678)
推荐(1) 编辑
EM算法学习笔记_1(对EM算法的简单理解)
摘要:因做实验的需要,最近在学习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
阅读(8664)
推荐(0) 编辑
Matlab成长之路_1(图片,视频,摄像头的读取和显示)
摘要:在计算机视觉和图像处理中,用matlab来验证算法的有效性是非常重要的,可以作为前期工作,因为matlab比c/c++等编程要来得简单些,不需要考虑那么多的数据类型和变量定义等。因此matlab在图像和视觉处理领域的这个得力工具也是需要掌握的。这一节简单介绍一些matlab自带函数实现图像,视频,摄像头数据的读取和显示方法(因为刚入门,方法可能不是很好)。一、图片的读取和显示。 比较简单,一个imread和imshow就可以搞定,类似opencv的用法,代码如下:imshow( imread('lena.jpg') );二、视频的读取和显示 视频数据的读取要用到VideoRea
阅读全文
posted @
2012-07-12 15:16
tornadomeet
阅读(14374)
推荐(1) 编辑
基础学习笔记之opencv(7):ubuntu下opencv在Qt中的使用
摘要:本文的开发环境: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
阅读(31137)
推荐(1) 编辑
总结系列_9(Linux下常见使用总结,续...)
摘要: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
阅读(1651)
推荐(0) 编辑
总结系列_8(Xp下U盘安装Ubuntu简单总结)
摘要:(注:装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
阅读(3294)
推荐(0) 编辑
总结系列_7(opencv2.4.2+vs2010安装简介)
摘要:环境: 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
阅读(16902)
推荐(1) 编辑
Reading papers_11(读Integrating local action elements for action analysis相关文章)
摘要:读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
阅读(1353)
推荐(0) 编辑
Qt学习之路_6(Qt局域网聊天软件)
摘要:在上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
阅读(38544)
推荐(5) 编辑