Running...
技术成就梦想
posts - 20,comments - 180,trackbacks - 3
摘要: 在C里,malloc&free是一对很有用的函数,它们让动态内存申请与操作成为了可能,在C++里我们有了更好的选择,那就是new和delete。malloc和free虽然也很灵活,但会产生很多问题,原因就在于它们不知道如何与构造函数和析构函数做交互。 比较一下下面两句代码: string *s1=static_cast<string *>(malloc(10*sizeof(s...阅读全文
posted @ 2009-03-05 14:55 saintbird 阅读(184) 评论(0) 编辑

有这样一堆数据,基本格式是这样的:

Group 1

Class 1 -     984 Points

Point 1

y:    346.102652 x:    140.217103 scale:    51.539823 orientation:    -0.980912

Descriptor:128 dimensions.

0 2 0 0 3 105 38 2 62 5 1 0 0 22 53 159 159 0 0 0 0 0 3 159 94 0 0 0 0 0 1 80 13 9 5 22 30 61 29 8 147 18 2 1 0 15 102 159 93 0 0 0 0 0 52 159 27 0 0 0 0 0 1 45 21 10 3 9 4 0 0 0 159 35 1 1 0 0 1 50 110 9 0 0 0 0 5 50 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 4 12 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

Point 2

y:    346.102652 x:    140.217103 scale:    51.539823 orientation:    -1.855678

Descriptor:128 dimensions.

139 149 16 6 0 0 0 0 149 149 1 0 0 0 0 0 45 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 64 4 2 0 0 23 54 149 144 1 0 0 0 0 43 127 51 6 0 0 0 0 8 0 0 0 0 0 0 0 0 26 5 4 2 8 18 96 72 116 149 66 6 6 3 3 25 25 149 40 0 0 0 0 0 0 6 1 0 0 0 0 0 0 0 0 1 8 18 6 0 0 20 11 3 6 3 0 0 1 26 2 0 0 0 0 0 0 0 0 0 0 0 0 0

......

Point 984

y:    239.457105 x:    417.113207 scale:    0.898385 orientation:    1.633814

Descriptor:128 dimensions.

131 28 0 0 0 0 0 9 131 83 9 12 20 9 2 15 3 9 10 50 131 31 1 3 15 59 27 15 18 3 2 13 125 54 0 0 0 0 0 1 131 100 7 8 13 4 1 8 13 7 5 28 131 62 2 3 18 22 9 7 38 27 6 8 129 23 0 0 0 0 0 8 131 14 0 0 5 4 4 16 30 1 0 0 70 131 25 11 2 0 0 0 20 95 52 6 91 14 0 0 0 0 0 7 131 55 0 0 0 0 3 10 56 24 1 10 17 72 23 11 0 0 0 24 34 79 22 0

Class 2

...

Class 3

...

Class N

这样的Group有几万个,每个Group里有10个左右的Class,每个Class的Points数量是不定的(一般为100~1000)。程序中最常用的操作是提取同一个Group中的所有数据,与外部一组结构相同的数据进行比较。对于这样的需求,如何设计数据库才能获得最好的性能?最简单的设计方法当然是Group,Class,Points分别设计为一个表,三者直接通过外键进行关联,但这样的设计方法将导致Points的记录数达到上千万条,这简直是不可想象的。如果哪位兄弟有类似的项目经验,还请多多指教。

 

posted @ 2009-02-24 11:07 saintbird 阅读(972) 评论(4) 编辑
摘要: 这类文章放在首页不知是否合适,不合适的话稍后会自行撤下。写这篇文章的目的并不是为了向大家推荐一款软件,只是想说明作为一名程序员,只要改变一下思路我们可以在很多地方发挥自己的专业优势,而不仅仅是通过闲暇之余帮MM杀杀毒,装装系统来表现自己的专业和与众不同;其次,希望通过分享的形式总结自己,如果同时还能对一两位朋友有点用处的话,那就更加欣慰了。阅读全文
posted @ 2008-12-10 16:17 saintbird 阅读(5265) 评论(43) 编辑
摘要: 最近一直在做数字图像处理方面的项目,感觉有必要将相关的知识整理一下。  标题取得很大,图像工程其实是一个很广泛的概念,包含了图像处理、图像分析、图像理解三个层次,目前参与的项目主要与图像处理与分析相关,图像理解方面的东西了解还不是很多,希望以后能有更多深入的机会。  图像工程的三个层次:         图像处理:      图像分析:      图像理解:阅读全文
posted @ 2008-12-02 13:01 saintbird 阅读(532) 评论(1) 编辑
摘要: 正在做一个基于内容的图像检索项目,客户要求可以让用户提取图片上的任意形状的子图作为输入。为了实现这个功能,花了不少精力,中间绕了不少圈子。现在问题总算解决了,把主要的思路记录一下,希望能帮到有同样需求的朋友。 由于这个项目使用了第三方的开源图像库opencv,所以这个功能也是借助opencv来实现的。 首先需要解决的是在图片中绘制曲线的问题,思路很简单,只需要响应鼠标事件通过描点、连线的方式就可以...阅读全文
posted @ 2008-10-27 17:55 saintbird 阅读(2982) 评论(2) 编辑
摘要: SIFT算法的介绍参见:SIFT算法学习小记 前面有朋友问到Sift特征点的提取方法,这里简单做个介绍。作为一种匹配能力较强的局部描述算子,SIFT算法的实现相当复杂,但从软件开发的角度来说,只要会使用其中几个比较重要的函数就行了。这里要感谢David Lowe这个大牛,不但提供了一种强悍的特征匹配算法,还给出了C++的实现代码,后来有人用C#实现了这个算法,需要的朋友可到网上自行下载。 关键函...阅读全文
posted @ 2008-10-27 17:26 saintbird 阅读(7243) 评论(15) 编辑
摘要: 最近一直在做数字图像处理方面的项目,其中基于内容的图像搜索是自己最感兴趣的一个方向,项目还在进行中,今天先对之前的工作做一个小结。 提到基于内容的图像搜索,就不能不提基于文本的图像搜索。 当前几乎所有的商用图像搜索引擎如Google、百度、雅虎等都是采用基于文本的检索方式,这种方式存在很大的弊端:首先图像一般都具有丰富的细节和它的引申意义,这是难以用文字描述出来的,仅靠几个关键字或简单的注释是远远...阅读全文
posted @ 2008-10-07 12:27 saintbird 阅读(2534) 评论(17) 编辑
摘要: 前几天上传了一个自制的QQ找碴游戏的小工具,有部分朋友比较感兴趣,这里简单说一下原理。阅读全文
posted @ 2008-09-22 10:34 saintbird 阅读(885) 评论(4) 编辑
摘要: QQ大家来找碴的游戏辅助工具。阅读全文
posted @ 2008-09-18 21:16 saintbird 阅读(1339) 评论(21) 编辑
摘要: 空域滤波技术根据功能主要分为平滑滤波与锐化滤波阅读全文
posted @ 2008-08-21 11:46 saintbird 阅读(1570) 评论(0) 编辑