- 博客(68)
- 资源 (10)
- 收藏
- 关注
原创 玩转Intel Edison物联网开发套件
Intel Edison这个板子虽然已经出来一两年了,但至今在国内不是很火,网上的资料也不是很多,尤其是中文的资料,下面我们简单搞起。我使用操作系统是Ubuntu 15.04 x64。这个是我拿到的板子,可以看到左上角有两个mini usb接口,我现在连着线的是连接板子console端的,在Linux下可以看到是/dev/ttyUSB0(只要接口能提供UART-over-USB功能,就
2016-10-26 15:13:49
5448
原创 【SLAM】之建图Bag->Pcd->OctoMap
上篇中我们得到了3D激光雷达获得的点云图,存在.bag文件中,接下来我们再用上上篇末尾的做法跑loam_velodyne算法,在RVIZ中的显示效果如下:这时我们用rqt_graph可以看到:上面三幅图分别是All、Active和Nodes Only时Node和Topic的关系。经过在RVIZ中的测试,发现/laser_cloud_surround这个Top
2016-07-19 15:55:15
24318
11
原创 【SLAM】之Velodyne VLP16 激光雷达使用
Velodyne VLP16型激光雷达横向视角360°,纵向视角30°,如下图:实验机器是ubuntu 14.04 x64, ROS版本Indigo,目前ROS支持的Velodyne型号是:HDL-64E,HDL-32E,VLP-16。官方tutorial是以32E为例,但我们手头是VLP-16,下面以VLP-16为例介绍驱动过程:1. 安装驱动:sudo apt-get in
2016-07-15 20:48:42
51768
50
原创 【SLAM】之ROS安装,配置与初试
我的系统是Ubuntu 15.04 Vivid, 安装ROS Jade。sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo apt-key adv --keyserver hkp://
2016-07-15 18:39:11
11118
8
原创 【SLAM】之Point Cloud Library(PCL)简介与安装
PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的
2016-07-14 19:25:08
13240
2
原创 【好玩的计算机视觉】自动玩“别踩白块儿”
在4399上找到了“别踩白块儿”网页版小游戏,然后用python3写了一个自动玩的小脚本。使用Python3,OpenCV 3.import cv2import numpy as npimport osimport pyscreenshot as ssimport timedef onMouse(event, x, y, flags, param): g
2016-07-03 20:02:50
7068
6
原创 【好玩的计算机视觉】自动玩寻找不一样的色彩4399小游戏
在4399上玩了一个寻找不一样的色彩小游戏,如下图所示:目的就是找到颜色不同的方块,点一次升一次级,限定时间25秒,点的快时间可以不变。最开始2x2,3x3,4x4,5x5等等逐渐增多,最后9x9不变。我的思路首先是截一张图,这里我用的是pyscreenshot模块,让用户用鼠标点击游戏总方块的左上顶角和右下顶角,这样确定了目标区域。以9x9的时候为例,代码如下:impor
2016-06-19 18:31:06
8903
1
原创 【好玩的计算机视觉】KNN算法手写数字识别
OCR应用非常广泛,而且有许多方法,今天用KNN算法实现简单的0-9手写数字识别。KNN算法是K近邻分类算法,属于机器学习中的监督学习,需要一定量的带标签的输入样本数据进行“训练”,然后就可以识别。我给“训练”打引号是因为其实KNN没有明显的前期训练过程,它是要给一个样本x分类,就从数据集中在x附近找离它最近的k各数据点,这k个数据点中包含的y类别最多,那么就把x的标签标记为y,这就完
2016-06-08 20:59:30
23518
30
原创 【好玩的计算机视觉】物体跟踪及屏幕涂鸦
好久没来CSDN了,还是写博客的岁月更加充实。这次开个新的专栏【好玩的计算机视觉】,打算做一些从入门到进阶过程中好玩的程序分享给大家,抛砖引玉。因为计算机视觉和摄像头分不开,所以以后这个专题标配一个demo视频。因为我喜欢B站的弹幕和没有广告,所以视频都发在bilibili上,非常欢迎大家用弹幕和我交流分享点子哈:-)这次做一个跟踪涂鸦,就是先确定一个物体,用最小的圆跟踪它从而获得圆心
2016-06-08 19:23:46
4964
5
原创 【从0开始Tornado建站】0.9版本python网站代码开源--持续更新中
从5月份开始【从0开始Tornado建站】这个专栏,开始一点一点把这个分类兴趣网站弄起来,从无到有的过程也是令人兴奋的:-) 国庆的时候等待备案然后上线,现在网站域名为ustchacker.com, 欢迎加入,一起分享代码和点子,可以提问题共同进步~ 现在的代码版本是0.9(我自己定的。。。因为还在完善中),希望能依靠开源的力量打造出一个分类兴趣网站的模板式框架!托管在GitHub上: https
2014-11-21 17:45:25
4659
4
原创 python3下multiprocessing、threading和gevent性能对比----暨进程池、线程池和协程池性能对比
目前计算机程序一般会遇到两类I/O:硬盘I/O和网络I/O。我就针对网络I/O的场景分析下python3下进程、线程、协程效率的对比。进程采用multiprocessing.Pool进程池,线程是自己封装的进程池,协程采用gevent的库。用python3自带的urlllib.request和开源的requests做对比。代码如下:import urllib.requestimport re
2014-11-10 17:28:43
38989
7
原创 知道创宇爬虫题--代码持续更新中
网上流传着知道创宇的一道爬虫题,虽然一直写着一些实用的爬虫,但真正写出这个一个规范要求的“工具”,还是学到了不少东西。先看下题目:使用python编写一个网站爬虫程序,支持参数如下:spider.py -u url -d deep -f logfile -l loglevel(1-5) --testself -thread number --dbfile filepath --key
2014-11-06 15:53:09
9229
1
原创 约瑟夫环问题python解法
约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到k的那个人被杀掉;他的下一个人又从1开始报数,数到k的那个人又被杀掉;依此规律重复下去,直到圆桌周围的人只剩最后一个。 思路是:当k是1的时候,存活的是最后一个人,当k>=2的时候,构造一个n个元素的循环链表,然后依次杀掉第k个人,留下的最后一个是可以存活的人。代码如下:
2014-09-10 16:28:37
28302
4
原创 python3使用smtplib发送邮件
smtplib模块是smtp简单邮件传输协议客户端的实现,为了通用性,有时候发送邮件的时候要带附件或图片,用email.mime来装载内容。代码如下:import smtplibimport email.mime.multipartimport email.mime.textmsg=email.mime.multipart.MIMEMultipart()msg['from']='us
2014-06-08 11:00:43
26383
原创 01背包问题(回溯法)python实现
接上一篇,同样的01背包问题,上一篇采用动态规划的方法,现在用回溯法解决。回溯法采用深度优先策略搜索问题的解,不多说,代码如下:bestV=0curW=0curV=0bestx=Nonedef backtrack(i): global bestV,curW,curV,x,bestx if i>=n: if bestV<curV: bestV=curV bestx=
2014-05-22 21:00:14
14772
2
原创 01背包问题(动态规划)python实现
在01背包问题中,在选择是否要把一个物品加到背包中,必须把该物品加进去的子问题的解与不取该物品的子问题的解进行比较,这种方式形成的问题导致了许多重叠子问题,使用动态规划来解决。n=5是物品的数量,c=10是书包能承受的重量,w=[2,2,6,5,4]是每个物品的重量,v=[6,3,5,4,6]是每个物品的价值,先把递归的定义写出来: 然后自底向上实现,代码如下:def
2014-05-22 12:13:27
41342
10
原创 活动安排问题python实现
活动安排问题要求高效地安排一系列争用某一公共资源的活动,贪心算法提供了一个简单的方法,使尽可能多的活动能兼容地使用公共资源。贪心算法并不总能求得问题的整体最优解,但对于活动安排问题,贪心算法却能做到,使得最终所确定的相容活动集合的规模最大,证明不在这里给出。代码如下:def greedyManage(meeting): length=len(meeting) meeting.sort(ke
2014-05-21 10:24:40
6444
1
原创 python3自动爬笑话
学校的服务器可以上外网了,所以打算写一个自动爬取笑话并发到bbs的东西,从网上搜了一个笑话网站,感觉大部分还不太冷,html结构如下: 可以看到,笑话的链接列表都在里面,用正则表达式可以把最近的几个笑话地址找出来,再进到一个笑话页面看下: 每一个笑话页面里面是有多个小笑话组成的,全部在标签下,每个小笑话又单独一个包裹,这样非常容易
2014-05-13 11:04:46
7642
3
原创 最长公共子序列python实现
最长公共子序列是动态规划基本题目,下面按照动态规划基本步骤解出来。1.找出最优解的性质,并刻划其结构特征序列a共有m个元素,序列b共有n个元素,如果a[m-1]==b[n-1],那么a[:m]和b[:n]的最长公共子序列长度就是a[:m-1]和b[:n-1]的最长公共子序列长度+1;如果a[m-1]!=b[n-1],那么a[:m]和b[:n]的最长公共子序列长度就是MAX(a[:m-1]和
2014-05-12 17:05:26
27244
2
原创 【从0开始Tornado建站】发表文章和评论
先上个效果图:这是每个用户的主页,因为是基本功能,所以用户头像,爱好等信息都还没有,在下一阶段加上。右侧“发表新文章”按钮点击后进入发表文章的页面:之前尝试过一些开源的富文本编辑器widgEditor和百度的ueditor,总感觉太大众化,既然域名是hacker,那就用hack一些的方式,直接用裸的然后用markdown格式就最棒了嘛,发表后的样子:
2014-05-11 21:12:25
4946
2
原创 【从0开始Tornado建站】群聊
群聊的前台主要代码:{%block content%}测试版本,每天凌晨4:00清水,enjoy it~~:-)--> {%for i in content[19*int(num)-19:19*int(num)]%} 【{{i[1]}}】 ({{i[3]}}) : {{i[2]}} {%end%} {%for i in range(1,pages+1)%} {{i}} {%
2014-05-11 20:35:19
3412
原创 【从0开始Tornado建站】显示所有注册用户
显示注册用户的前台主要代码如下:{%block content%} {%for i in users%} {{i[1]}}({{i[3]}}星级) {%end%} {%end%}显示注册用户的后台代码如下:class memberHandler(tornado.web.RequestHandler): def get(self): name=self.get_coo
2014-05-11 20:24:33
3650
原创 【从0开始Tornado建站】主页的登录和显示最新文章
登录只要放在主页就可以了,这里为了美观,把用bootstrap的form-inline类修饰,如下样子:前台代码如下:{%extends 'main.html'%}{%block header%} 首页 成员 群聊 {%if not cookieName%} 用户名 密码 登录 无帐号,请点击注册 {
2014-05-11 20:10:09
6988
3
原创 【从0开始Tornado建站】注册
基本的注册功能有用户名、密码和密码确认,当然邮箱确认和基本信息填写在高阶的时候完善,现在只完成基本功能。在register.html写如下内容:{%extends 'main.html'%}{%block content%}注册用户名不支持中文 用户名 密码 确认密码 注册 已有帐号,请直接登录{%end%}效果图如下
2014-05-11 10:12:25
6162
3
原创 【从0开始Tornado建站】总体设计
Tornado是一个非阻塞的web服务器,也是python的web框架中非常优秀的一款。网上关于django的tutorial非常多而且详细,关于tornado的使用就非常少了,我想以我从0开始的方式一步一步用这个优秀的tornado框架建一个小网站,一方面加深自己的理解,另一方面接受大家的建议和批评,更加进步~ 我想建的是一个普通的网站,有登录、注册、发表文章、发表评论、群聊等
2014-05-11 09:51:07
9262
2
原创 棋盘覆盖问题python3实现
在2^k*2^k个方格组成的棋盘中,有一个方格被占用,用下图的4种L型骨牌覆盖所有棋盘上的其余所有方格,不能重叠。 代码如下:def chess(tr,tc,pr,pc,size): global mark global table mark+=1 count=mark if size==1: return half=size//2 if pr<t
2014-05-08 11:24:53
13870
6
原创 大整数乘法python3实现
由于python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,但是思想是一样的。利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位置开始算的。代码如下:import sysdef list2str(li): while li[0]==0: del li[0] res='' for i in li: res+
2014-05-07 15:13:30
14855
原创 SQLite3基本使用从shell到python
SQLite是一个轻量级的关系型数据库,在访问量不超过10万PV的中小网站中使用绰绰有余。而且使用方便,接口简单,下面从命令行和python接口两方面介绍SQLite3的基本操作。 在linux终端中,通过 sqlite3 a.db 打开a.db数据库,如果不存在会自动创建,创建一个表格:create table users(id integer primary key,na
2014-04-29 10:45:04
6779
原创 【Python排序搜索基本算法】之拓扑排序
拓扑排序是对有向无环图的一种排序,满足如下两个条件:1.每个顶点出现且只出现一次;2.若A在序列中排在B的前面,则在图中不存在从B到A的路径。如上的无环有向图,v表示顶点:v=['a','b','c','d','e'],e表示有向边:e=[('a','b'),('a','d'),('b','c'),('d','c'),('d','e'),('e','c')],代码如下:
2014-04-19 15:35:32
11234
2
原创 【Python排序搜索基本算法】之堆排序
堆是一种完全二叉树,堆排序是一种树形选择排序,利用了大顶堆堆顶元素最大的特点,不断取出最大元素,并调整使剩下的元素还是大顶堆,依次取出最大元素就是排好序的列表。举例如下,把序列[26,5,77,1,61,11,59,15,48,19]排序,如下:
2014-04-16 21:47:36
11123
原创 【Python排序搜索基本算法】之二叉树的深度和宽度
接着上一个二叉树的主题,用python写一下求二叉树深度和宽度的代码,求深度用递归;求宽度用队列,然后把每层的宽度求出来,找出最大的就是二叉树的宽度,如下:import queueclass Node: def __init__(self,value=None,left=None,right=None): self.value=value self.left=le
2014-04-15 09:41:53
11993
2
原创 青蛙跳小游戏之python3解法
青蛙跳小游戏是一个看似简单的智力游戏,游戏任务是让左右两边的青蛙互换位置。鼠标点击青蛙,它会跳到离它最近的一块空置的石头上。下图是游戏界面: 我在4399上也找到了这个小游戏,链接http://www.4399.com/flash/7584.htm 。 这个小游戏我尝试了好多次,太笨了,只能用代码搞起,就是深度搜索,找到一个解就OK。代码如下:pos
2014-03-05 09:35:37
7905
3
原创 软件实现的网络共享投影--SAGE的安装配置与使用
现在的会议室都会配备一台投影仪,用于开会工作总结进度报告等的演示,但当多个人要做报告的时候,我们看到的情况是演讲者抱着电脑依次坐到靠近VGA插口的位置,然后连上投影仪,windows下可以直接搞起用,linux下还需要配置一下,会议的节奏就被打乱了,这样的状况也是时代的产物,但也注定会被淘汰。还有一种情况,比如有多台电脑一个做客户端,一个做服务端,也许还有一个控制节点等等,要同时监控多个屏幕的实时
2014-02-28 20:00:26
5715
原创 python3自动下载优酷视频小程序
我们一般都在优酷里看一些好玩的视频,有时候看到精彩的就想下载到本地保存起来留作纪念,在win下可以用维棠等软件下载,但苦了用linux的孩子们。尽管chrome和firefox的一些插件可以下载,但有时候下载下来是分段的视频,还要手动用ffmpeg合成一个视频太繁琐,而且用插件下载要点击好多次鼠标,太不符合linuxer的性格了哈~于是我用python3写了一个youkuDown.py,代码如下:
2014-01-13 20:30:01
21804
9
原创 python的函数式编程玩法+年末小感
从小老师教编程语言就告诉分两种:面向过程和面向对象,正如同小学电脑课面对的是win95,仿佛世界上windows就是操作系统的别名,如今还是这样,高校的计算机中心都是windows,所以linux是要自己搞起,函数式编程也是要自己搞起的~不为学分不为奖学金不为工资只是追随着自己的兴趣,这才是最开心的哈~ python有一大优点,就是既可以面向对象也可以面向过程还可以函数式搞起,因
2013-12-29 18:42:35
11592
原创 linux下语音识别小总结
我之前发过我的贪吃蛇的代码,我想把它变成语音控制上下左右的,于是选择科大讯飞的SDK,官方有一些文档,但有一些细节还是会让在linux下开发的孩子们产生困惑比如我,现在总结在此~ 首先下载科大讯飞的SDK-linux版本,需要注册先。。。在下载下来的include文件夹下,有四个文件:msp_errors.h msp_types.h qisr.h qtts.h。前两个是通用
2013-11-30 22:42:20
35798
13
原创 把学校直播的电视节目保存到本地
有时候想看电视节目,但播放的时候自己可能在开会在吃饭在厕上等等,经常错过好多电视节目。每个学校都有电视转播的网站,从那里定时下载,到时候观看就啥都不耽误了,关键还能快进哈~开始搞起~ 学校的电视直播地址是http://video.ustc.edu.cn/tv.php,比如用vlc看凤凰卫视:cvlc rtsp://202.38.64.43/tv7 打开wir
2013-10-20 15:56:22
6189
5
原创 NDN路由--OSPFN安装与配置
现在的IP网络的问题已经暴露的很多了,各种改进的网络架构与设想非常多,但其中以基于内容为中心的网络发展最为迅速,其中,NDN的架构最为完整,代码也比较成熟。OSPFN是基于CCNX的,所以之前要安装CCNX,简单的./configure make make install 就可以安装完成,自带很多例子可以跑跑。接下来安装OSPFN,由于还要配置,所以把过程记录在下面。 1.
2013-08-14 22:11:55
6020
2
原创 python解数独--世界最难数独2.3秒完成
“芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》2012年6月30日的一篇报道。看完这个新闻就对数独有点感兴趣了,于是用python解一下玩玩,无意中却戳穿了某个虚假新闻(下面有链接)。 上图就是那个最难数独。解数独用的就是深度优先搜索,有几个方面可
2013-08-04 20:37:09
65169
29
原创 【Python排序搜索基本算法】之Dijkstra算法
Dijkstra算法和前一篇的Prim算法非常像,区别就在于Dijkstra算法向最短路径树(SPT)中添加顶点的时候,是按照ta与源点的距离顺序进行的。OSPF动态路由协议就是用的Dijkstra算法。下面还以那个图的例子为例:代码如下:_=float('inf')def dijkstra(graph,n): dis=[0]*n flag=[False]*n pre=[
2013-08-04 17:50:14
24881
18
jquery-1.7.1 最新版本
2011-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人