- 博客(33)
- 资源 (6)
- 收藏
- 关注
原创 欢迎使用优快云-markdown编辑器
优快云 终于支持 Markdown 了优快云 终于支持Markdown,这篇文章也算是参考吧。我的博客请点击链接 xmf的博客。本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键
2015-05-07 09:59:36
631
翻译 Python的正则表达式
Python Regular Expressions (Python 正则表达式)认识正则表达式Python的正则表达式是使用 re 模块的。match = re.search(pattern,str)if match: print 'found',match.group()else: print 'NOT Found!'正则表达式的规则基本规则a
2014-06-20 16:41:37
921
原创 Stanford机器学习(Andrew Ng)Lecture1
本博客为自己学习斯坦福大学Andrew Ng教授机器学习课程(CS229)的笔记整理。并试图对一些课上提出的重要算法给出MATLAB仿真代码。Lecture1第一课主要是对于本课程的介绍,包括必要的先修课程等,这里就不多说了。我们可以想象一下传统意义的编程该怎么做?我们应该根据下棋的规则,利用搜索方法,用计算机给出向前推理若干步的棋盘局势,并根据一些相应的处理策略(我们提前编好
2014-01-31 20:10:41
1829
原创 Stanford机器学习(Andrew Ng)Lecture2(一)
Lecture2 梯度下降,最小二乘Part I 梯度下降方法(gradient descent)梯度下降法是求解函数极小值的数值解法之一,它的优点是原理易懂,计算简单,但是易于陷入函数的局部极小值点(local optimum),受初始值影响较大。梯度下降法的原理很简单。想象自己站在山顶,如何下山才能尽快地达到山脚呢?我们可以360度环绕四周,看看沿着各个方向的下降陡峭程度。我们
2014-01-31 20:09:09
1478
原创 学习OpenCV(六)TrackBar的使用
在以前的几个例子里面,我们并没有实现与计算机的交互。在OpenCV中,我们可以使用TrackBar来进行交互,调整一些参数的大小。这篇文章主要介绍了如何使用TrackBar。举一个均值滤波blur的例子。我们已经知道,卷积核影响了均值滤波的效果。卷积核越大,图像的模糊化越严重。我们可以使用TrackBar动态地调整卷积核的大小,这样可以使得实验效果更加直观。首先,来看一下参考手册中的描述。
2013-12-04 13:38:01
5216
1
原创 OpenCV学习(五)平滑滤波
在图像处理中,会用到对图像的平滑处理。平滑常常被用来消除图像的噪声,下面介绍几个常用于图像平滑处理的函数。(1)blur平滑处理常常用到的是线性滤波器。线性滤波器的数学基础建立在卷积的概念之上。对于一个线性滤波器,变换之后图像的输出值其实就是该点的某个邻域内各点输入像素值的加权求和。假如我们现在有一幅M*N的图像要进行线性滤波,我们采用的卷积核(kernel)的大小为m*n,那么处理之后的
2013-12-03 14:22:36
2837
原创 ROS在Ubuntu下的安装
本文参考为ROS的官方教程http://wiki.ros.org/hydro/Installation/UbuntuROS是一款机器人操作系统,截止到目前(2013年11月),最新的版本号为hydro。据官方网站的消息,下一次更新将在2014年的4月份左右。下面,就来说一下如何在Ubuntu下安装ROS,我的笔记本操作系统为Ubuntu 12.04 LTS。首先,我们需要配置镜
2013-11-26 10:13:00
3099
1
原创 学习OpenCV(四) 改变图像的对比度和亮度——像素变换
在上篇文章中,我们介绍了如何用filter2D函数来对图像进行邻域变换。这篇文章我们来简单介绍一下如何对图像的像素进行变换。对图像的单个像素进行变换,是图像处理中一个很常见的操作。比如改变图像的亮度,对图像像素进行线性变换,二值化等。下面将以改变图像的对比度和亮度来举例。改变图像的对比度和亮度,归根到底,就是下面的这个数学公式:这个式子很好理解。就是将原来图像中的像素值进行比例变换
2013-11-12 19:16:39
2785
原创 学习OpenCV(三)用filter2D实现矩阵掩码操作
在对数字图像进行处理时,我们一般都会在空间域(spatial domain)或者频域(frequency domain)中进行。所谓“空间域”,实际上指的是图像本身,在空间域上的操作常常是改变像素点的值,也就是经过一个映射(我们所做的变换,如滤波等),将原来的f(x,y)变换为新的g(x,y)。而“频域”,它的数学基础是法国学者傅里叶提出的傅里叶级数和随后发展起来的傅里叶变换。在这其中起到重要作用
2013-11-10 14:27:05
24909
原创 OpenCV(二)如何对图像的像素进行操作
对图像的像素进行操作,我们可以实现空间增强,反色等目的。让我们先来看一下内存空间中图像矩阵,也就是Mat的矩阵数值部分是怎么存储的:如果图像是一幅灰度图像,他就像这样,从左到右,从上到下,依次是矩阵的每一行每一列,这时候矩阵M(i,j)的值自然就是当前点的灰度值了。而对于一幅彩色图像,由于它的像素分量channel并不是一个,所以每一列又分为了几个channel。拿常见的RGB图像来说
2013-11-02 15:43:28
3789
原创 学习OpenCV(一)从Mat讲起
本博客所用OpenCV版本为2.4.3,运行环境为Visual Studio2012。学习OpenCV是一个比较漫长的过程,希望我能够坚持!一.MatMat是OpenCV中用于存放图像的数据结构。我们知道,图像在计算机中是以数组的形式存放的。Mat正是描述的这样一种数据结构。通过调用相关方法,我们能够实现对图像的输入输出以及一些操作。同时,Mat又不止可以作为图像容器,它也可以作为一种
2013-11-01 20:31:25
2503
转载 MATLAB绘制3D隐函数曲面的几种方法
文章来自于MATLAB论坛,见此链接:http://www.ilovematlab.cn/thread-264471-1-1.html,感谢原作者winner245的辛勤总结!背景介绍Matlab提供了一系列绘图函数,常见的包括绘制2D曲线的plot函数、绘制2D隐函数曲线的ezplot函数、绘制3D曲面的mesh和surf函数、绘制3D显函数曲面的ezmesh和ezsurf函
2013-10-19 23:35:34
13796
4
原创 微博关机的MATLAB实现
差不多半个月前,在网上看到一篇文章,介绍了如何用MATLAB实现发一条微博来关机的功能。仔细一点说来,就是要实现这样一个功能:只要我的MATLAB的这个M文件正在运行,那么当我在自己微博上发布“关机”命令的时候,电脑便会关机。看了人家的思路之后,不由得赞叹他人的创意。下面我先把这段代码贴出来:cmd="关机";counter=0;r=[];%登入微博后,在 http://app.weib
2013-09-15 21:00:36
1135
转载 MATLAB获取系统时间的方法和格式输出
原文地址:在MATLAB中得到系统当前日期、时间也是经常用到的内容,由以下函数实现。作者:changwanghao在MATLAB中得到系统当前日期、时间也是经常用到的内容,由以下函数实现。1.生成指定格式日期和时间datestr-生成指定格式日期和时间,是字符型变量。>> datestr(now) %其中now是获取当前日期和时间ans =
2013-08-29 01:33:32
27312
1
原创 51+DS18B20测量温度(续)
上文中,我们提到要在一个具体的工程里面调用我们已经封装好的DS18B20来获取当前的温度。那么就来看看在下面的例子里面怎样调用已经写好的getTemp函数来实现测量温度的功能。首先,我们的设计包括以下几点:1.利用DS18B20数字式温度传感器获取当前温度值。2.在数码管上显示当前温度值。3.利用51单片机的串口通信功能,将温度值发送到上位机端。下面,我们就来看看具体实现:
2013-07-28 14:43:24
1771
1
原创 51+DS18B20测量温度
一.简述DS18B20是DALLAS公司出品的一种数字式单总线温度传感器,测温范围为-55°C到125°C(-67°F到257°F),被广泛应用在温度测量领域中。显著优点就是接线简单。因为它只有三个引脚:VCC,GND和DQ数据线,可以实现单总线数据传输,简化了硬件设计。而且,它可以使用数据线供电,可以再省去一个电源线,只要接地和数据线即可。下面是一个TSOC封装的引脚图:
2013-07-22 20:31:56
2884
原创 Android学习——Activity的生命周期
在Android系统中,一个Activity自从被创建到消亡有六种形态,这些形态之间的互相转换会调用相应的方法来处理。它们之间的关系可以用下面的这张图来说明,这张图来自于Android Developer的相关说明http://developer.android.com/training/basics/activity-lifecycle/starting.html:从这张图中,我们可以比
2013-07-22 12:29:15
990
原创 浅谈递归
递归无疑是一种威力强大的解决问题的方法,这从那个著名的“汉诺塔”问题就可以看出来。看上去无从下手的问题,需要我们从问题的整体来考虑,而不是把注意力放在“部分”的具体实现上。在解决汉诺塔问题时,我们只是找出了递归的策略,而把具体的操作让计算机去完成。然后,我们惊讶地发现,原来这个问题可以用一种如此简单美妙的方法来解决。说到递归,让我们再来看另外一种常用来解决重复问题的办法——迭代。迭代无疑也是一
2013-07-02 14:01:06
922
原创 Scilab
与MATLAB类似,SCILAB也是一种科学工程计算软件,语法与MATLAB非常接近,并且SCILAB提供的语言转换函数可以自动将用MATLAB语言编写的程序翻译为SCILAB语言。不过它的大小要比巨无霸MATLAB小了不少,官网上最新的Linux下用的scilab-5.4.1也只有170多M,而且像我这种渣渣电脑,MATLAB的启动速度着实令人蛋疼,而scilab的速度就快了不少。首先,
2013-06-28 20:58:14
4168
原创 volatile关键字的使用
先来看我不久前遇到的avr studio 6.0中的一个问题:我手上有一块atmega128开发板,我想要通过设置定时器1来实现间隔1s控制LED灯呈现不同花样的效果,于是,我写下了下面的代码:/***********************************描述:利用定时器1进行1s的计数,时间到则led灯变换一种花样定时器1可以作为16位加法计数器,最大计数值2^16-1=6
2013-03-28 13:31:28
832
转载 谈谈FFT有何用
FFT(快速傅里叶变换)是数字信号处理的经典算法,学过DSP或者芯片设计的人大多知道这个算法。但是,大家是否想过,为什么数字信号处理会有那么多FFT呢?有人会说,为了分析信号的频谱。那么下边的问题就是,分析频谱对我们的日常需求,比如手机打电话,雷达测量速度和方向等等一些与实际需求有什么联系?为什么FFT如此重要?本文举一些简明的例子,阐释一下FFT到底有什么用。先回忆一下FFT是什么。上世
2012-12-31 11:40:00
5956
1
原创 IDE86汇编语言环境使用
IDE86是一款汇编语言编译,调试,运行的IDE环境。当然,从现在的角度看,它的界面并不友好,看上去也比较水,不过毕竟是上世纪80年代的东西了,水就水吧。。。下面就是集成环境刚启动后的样子。IDE86可以用来写汇编程序,不过界面不是太好,所以还是自己找个别的文本编辑器来用吧。我用的是Notepad++,有语法高亮功能,这样就能在一定程度上帮助我们编写指令了。注意文件的后缀名为.asm即可。
2012-11-03 11:30:34
3688
5
原创 Robotics ToolBox机械臂仿真
选修实验要求研究一下Robotics ToolBox,好不容易在网上找到一些参考资料,没想到新的工具箱中许多函数都有变化了,只好硬着头皮看Lecture Notes了,好不容易憋出了几行程序%第一个机器人模型%6个旋转关节%xmfbitclear L1 L2 L3 L4 L5 L6 R qz qr t q qdd qdclose allclcL1=Link([0,0,2
2012-10-22 20:25:20
6717
1
原创 如何走好后面的路
新学期的开始,无疑是够郁闷的,发生了一系列让人抓狂的事情,一再折磨自己。今天成绩公布,果不其然,自己的成绩被其他人无情地爆出翔来了,排名下降很多,创下了自己的排名最差纪录······其实,我不会太看重成绩,作为一名工科学生,我想比卷面上的学习成绩更重要的是自己从大学几年的基础课也好,专业课也好,学到的解决工程实践问题的能力,能够把自己脑中所想的设计变为现实,带来技术的进步,自己有很好的工作,为社会
2012-09-28 20:40:49
2211
原创 51单片机液晶显示计时器
要想实现人机交互,显示装置是不可缺少的。前面讲到了如何利用单片机控制数码管的显示,这篇文章主要关于如何控制液晶显示,并在此基础上加上定时器的功能,把原来已用数码管显示的定时器搬到液晶屏上来。这里用到的液晶为LCD1602,能够同时显示16x02即32个字符(16列2行)。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大
2012-08-24 13:01:48
4596
4
原创 C#串口通信程序SerialPort类
上篇文章主要是关于串口通信中单片机部分的程序编写。在实际应用中,常常还要有上位机的配合才能完成工作。写串口通信的上位机程序,常常应用的编程语言有C++,VB,C#等。VB没有学过,C++编写窗口应用程序接触也不多,暑假自己看了一些C#的书,也有了一些了解,所以就用C#写窗口应用程序,用来作上位PC机的串口通信程序。在写的过程中,主要参见了这篇博客http://blog.youkuaiyun.com/wuyaz
2012-08-23 11:57:44
15526
原创 51单片机和PC串口异步通信(续)
上一篇文章主要罗列了一些编写串口通信必要的知识点。在具体的编程中,还有很多要注意的地方。下面的程序的主要功能为:通过串口调试助手向51单片机发送一个字母,单片机接收后,在数码管上显示这个字母,并将这个字母反向显示到串口调试助手的界面里。51单片机的头文件中已经定义了串口缓冲区等一系列特殊功能寄存器,打开头文件就可以找到下面这样的定义:sfr SCON = 0x98;sfr SBU
2012-08-22 16:53:24
2590
原创 51单片机和PC串口异步通信
单片机和PC机间的通信有很多方式,下面的程序主要用到的是51单片机的异步串行通信。 一.51单片机的串行通信管脚 P3.1为单片机的TXD管脚(Transfer Data),P3.2为单片机的RXD管脚(Receive Data)。通过TXD管脚可以将CPU要发送的数据输出,RXD管脚可以将串行数据线传来的数据读入。 二.51单片机的串行通信控制寄存器SCON,电源控制寄存器P
2012-08-22 00:20:17
3385
原创 单片机秒表计时器
用51单片机的定时器0的方式1计时,结果用4位数码管显示,分别为秒十位,秒个位,毫秒百位,毫秒十位。所以总共最大计时为1分钟,精确到了0.01s。同时,加上3个独立按键,分别控制秒表的清零,暂停和开始功能。 按照模块化的思想,首先先把要用的函数和预定义写到一个头文件中,要用到的预定义和全局变量如下:#include #define uchar unsigned char
2012-08-21 10:42:03
14186
3
原创 51单片机的独立键盘
这几天打算好好开始看郭天祥的单片机视频,自己也写了一个独立键盘的51单片机程序,开发环境为Keil C51。刚开始看,功能并不是很复杂,由51单片机的P1^7口接LED灯,P0口作为6位数码管的位选线和段选线,6位数码管每次显示相同的数字。位选和段选的控制由P2^7,P2^6口。按键只有一个,一端与地相连,一端接P3^7口。当按下按键时,LED灯会发光,同时6位数码管显示的数字加1,从0~
2012-08-20 22:03:49
1864
ezimplot3.zip用于MATLAB中绘制3D隐函数图像
2013-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人