RECORDING MY FANTASY

Friday, December 04, 2009

connect your bluetooth device on linux

If there's one bluetooth attached on your PC, you can use the following commands to set up one serial port for your bluetooth device:)

1) sdptool add --channel=2 SP
2) rfcomm listen rfcomm2 2
3) $ cu -l /dev/rfcomm2

Monday, November 30, 2009

gnu ocrad-开放源代码的OCR研究项目

我这段时间在上水木社区时,注意到网易有道手机词典的广告,最大的特色就是新增加的“摄像头取词”功能。我非常喜欢这个创意,想象一下:当看到不懂的单词时,只要把手机摄像头对着书本,在摄像头里面选中单词,然后就能看到词典解释;这是多么的酷(而且是非常实用)。

然后,我就想我们能不能自己搞一个类似的程序呢?因为俺们没有学过模式识别、图像处理这些课程,所以我就想找一个开源的OCR程序来看看,在维基上找了又找,终于发现了一个GNU OCRAD。它是隶属于GNU project的项目,基于GNU GPL许可证,它可以处理ppm格式的图像文件,生成utf-8格式的文本。

我下载了源码、编译,没有发现任何错误。然后我在电脑上截了一张图片并生成了一张全是英文字母+数字的png格式的图片,名字暂取ocr_source.png,然后运行命令: pngtopnm ocr_source.png | ocrad
可惜的是效果不好。其中有很多字符都没有识别出来,都被标称了_ ; 还有几个字母都认错了,像a, i等等。我当时的想法就是,这东西实用性还是不行。

不过,今天我在看一篇全是图片的pdf文件,用pdf截图工具截了一块区域存成了ocr_source.png文件,然后重新用ocrad命令识别了一下,竟然全部都识别了出来!我比较了一下这两次的图片,成功的这次使用的图片里面的文字都比较大,而第一次失败的图片里面的文字都比较小。我猜测一下,可能这会影响到ocrad里面算法的识别率。

Friday, October 16, 2009

B树和B+树的些微区别

实现树型目录结构文件系统,常采用二叉树,其中每个节点都有父指针,子指针和兄弟指针,其中子指针指向该目录下的第一个子节点,而该子节点的父指针则指向它的上级目录。目录下各子节点用兄弟指针连接起来。大型文件系统一般采用B+树实现,而不采用B树,这时因为:在B树中,分支节点和叶子节点均保存记录的关键码和记录的指针;在B+树中,分支节点只保存记录关键码的复制,无记录指针,所有记录都集中在叶节点一层,并且叶节点可以构成一维线性表,便于连续访问和范围查询。由于在B树的叶子节点中直接就包含记录,导致了叶节点能存放的SearchKey数目减少,同样大的文件相应的需要的节点数目就增多了,树的高度也较B+树深了很多。对于同样阶的B树和B+树,B+树的树高和平均检索长度均大于B树(因为B+树必须检索到叶节点一层);但实际检索过程中,最耗时间的是I/O,也就是访盘次数越少越好。B+树的分支节点无记录指针,同样一个盘块可以存放的关键码数就更多,所以虽然平均检索长度大,但访盘次数反而少,文件操作的速度也就比B树快。

Saturday, July 04, 2009

Stay away from me weirdo !!


Stay away from me weirdo !!, originally uploaded by AmmarQ8.com.