最近的两篇代码感悟

写感悟是一个好习惯,我要坚持,不过目前还只是一些很杂乱的细节被记下来了,尚未得到什么大的提高。

看起来像初学者扫盲贴= =

2011年1月15日 星期六     雨

QT中new出来的对象都不用删除,只要设置了parent对象。
我为了不用new,直接声明的layout,在函数调用结束时就删除了,这样会导致程序错误,还是应该动态申请。
我居然想到写个matrixWindow继承QWidget来避免重复工作。
相关的东西放在一起,比如MathLib.h
.h文件里的函数定义都要是inline的,不然会有link error。以前也遇到过,但每次写的时候还是会忘记加inline。
原来用QFileInfo就可以分离文件名和路径,不用split(土人)
QTextStream和QDataStream都很好用。
输出到文件里的回车用\n和endl都是不行的,要用\r\n。
QT十分强大。
 

自己的不足

变量命名很乱
接口设计太烂
只会写一些简单代码

2011年1月19日 星期三     中到大雪
现在建立个工程然后当作库来调用什么的已经很顺溜了,把空工程改成QT工程也会了,也知道怎么让窗口和命令行都显示了

其实stereo correspondence代码框架里的程序设计很精妙,我也第一次知道了C语言里#符号的意义,原来参数的名字是可以这样转变为字符串的。google了一下顺便也学会了##的用途,以后我写ui文件的slot函数不用那么痛苦了^_^ 类似于#define ACTION_SLOT(x) on_action##x##_triggered  应该能省好多事
代码为了能够兼容随意书写的script文件,硬是把一个状态机程序写成了对每一条指令都执行一遍所有函数,命令行解析的函数各种递归调用,看得我头晕目眩
也了解到继承原来可以这样用,把类别相关的变量放进一个参数类里,然后继承这些参数类来实现一个核心类,再用IO类去继承核心类,虽然它不见得是一个好的设计,但也教会了我类的继承不仅仅是从车发展成卡车与轿车

try和catch真的是很必要,我还真没用过C++的try catch

还有一些小技巧,比如能memcpy就不要一个一个赋值吧,其实一般用到的数据结构都是顺序存储的
花了一天时间删除多余的各种函数,精简成我希望的部分,添加对其他图像文件的读写(原本只支持两种文件格式),不过是利用QImage,不是我自己写(QImage居然不能存储8位灰度图,虽然后来存成32位灰度图之后在PHOTOSHOP里显示还是8位)
最后发现效果最好的那个算法,由于内存耗费太严重,图像大一点就挂了。我原本有一份已经rectified的图片,缩小了之后得到的disparity map很混乱
后来调用另一篇论文的matlab实现,效果好了很多。那篇论文是stereo网站上效果常年第一的(现在变第二了),我想终究我还是要实现这个

其实写程序是一件很快乐的事情

本文原创,转载请注明出处

http://www.cnblogs.com/luluathena/

posted @ 2011-01-21 10:22  筱夏  阅读(419)  评论(0编辑  收藏  举报