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
RECORDING MY FANTASY
Friday, December 04, 2009
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里面算法的识别率。
然后,我就想我们能不能自己搞一个类似的程序呢?因为俺们没有学过模式识别、图像处理这些课程,所以我就想找一个开源的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
Subscribe to:
Posts (Atom)