2012年5月29日
摘要: 在OpenCV程序中,需要保存中间结果的时候常常会使用.xml / .yml文件,opencv2.0之前都是使用C风格的代码,当时读写XML文件分别使用函数cvLoad()和cvSave()。在2.0以后的OpenCV转为支持C++,这一举措大大减少了代码量以及编程时需要考虑的细节。 新版本的OpenCV的C++接口中,imwrite()和imread()只能保存整数数据,且需要以图像格式。当需要保存浮点数据或者XML/YML文件时,之前的C语言接口cvSave()函数已经在C++接口中被删除,代替它的是FileStorage类。这个类非常的方便,封装了很多数据结构的细节,编程的时候可以根据. 阅读全文
posted @ 2012-05-29 20:26 拼装小火车 阅读(26625) 评论(1) 推荐(7) 编辑
  2012年5月25日
摘要: 1. vs2008中一个solution下可以有多个project,只需要右键"solution",add -> new project / existing project。2. 对单个project编译很简单,那么如何单独对某个project进行debug呢。可以按照如下操作:1) 打开该solution的属性,配置其中的common properties\startup project为single startup project并在其下选中要debug的project2) 打开要debug的project的属性,配置其中的debug选项卡,其中command 阅读全文
posted @ 2012-05-25 22:14 拼装小火车 阅读(759) 评论(0) 推荐(1) 编辑
  2012年5月4日
摘要: 写程序的时候希望一个类能够访问另一个类的数据成员(protected, private),例如类A要访问类B中的数据成员。1.保持封装性可以通过在被访问的类(B)中定义访问权限为public的函数,用来返回数据成员的引用。2.继承当一个派生类从父类继承时,父类的所有成员就成为子类的成员,因此可以将被访问类作为父类被继承。要注意此时对父类成员的访问状态由继承时使用的继承限定符决定。父类权限 继承方式privateprotectedpublicprivateprivate privateprivateprotectedprivate protectedprotectedpublicpri... 阅读全文
posted @ 2012-05-04 17:11 拼装小火车 阅读(7196) 评论(0) 推荐(2) 编辑
  2012年5月1日
摘要: 图像处理中,一个最基本并且最重要的卷积就是导数的计算,一般用来表达微分最常用的操作是Sobel算子,可以包含任意阶的微分以及融合偏导(例如∂2/∂x∂y)。在图像处理中,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。根据百度百科:该算子包含两组矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。矩阵的大小称为核的大小。sobel算子有一个非常好的性质,即可以定义任意大小的核,并且这些核可以用快速且迭代方式构造。在opencv函数cvSobel中,有以参数ap 阅读全文
posted @ 2012-05-01 23:23 拼装小火车 阅读(3502) 评论(0) 推荐(0) 编辑
摘要: 优先级队列,以前刷题的时候用的比较熟,现在竟然我只能记得它的关键字是priority_queue(太伤了)。在一些定义了权重的地方这个数据结构是很有用的。先回顾队列的定义:队列(queue)维护了一组对象,进入队列的对象被放置在尾部,下一个被取出的元素则取自队列的首部。priority_queue特别之处在于,允许用户为队列中存储的元素设置优先级。这种队列不是直接将新元素放置在队列尾部,而是放在比它优先级低的元素前面。标准库默认使用<操作符来确定对象之间的优先级关系,所以如果要使用自定义对象,需要重载 < 操作符。优先队列有两种,一种是最大优先队列;一种是最小优先队列;每次取自队列 阅读全文
posted @ 2012-05-01 22:28 拼装小火车 阅读(31743) 评论(2) 推荐(14) 编辑
  2012年4月27日
摘要: PIL: python Image Library这个库可用于图片的一些常用操作,比如改变图片格式、尺寸、色彩、旋转等。pil站点: http://www.pythonware.com/products/pil/index.htmpil下载: http://effbot.org/downloads/Imaging-1.1.6.tar.gzpil文档: http://www.pythonware.com/library/pil/handbook/index.htm1. 安装:下载对应的windows版本,为.exe文件,双击运行即可2. 使用:如果想使用Image类的话,from pil imp 阅读全文
posted @ 2012-04-27 15:30 拼装小火车 阅读(4132) 评论(0) 推荐(0) 编辑
  2012年4月26日
摘要: 很神奇的我又开始了python的学习,上一次的赶鸭子上架和开头就废。这次~好好来~Let's Python!先下载了一个python简明教程。http://woodpecker.org.cn/abyteofpython_cn/chinese/1. 安装为了尽快上手,安装了教程上的python版本 -- python2.4.3。安装过程非常傻瓜,只是要配置一下系统变量中的Path,添加安装目录到Path即可。2. 选择编辑器编辑器选择了自带的IDLE。要注意一点,在教程中提到可以用help()来获得那些关键字的说明,前提是设置好PYTHONDOCS这个变量,然后只提到了linux中如何设 阅读全文
posted @ 2012-04-26 21:22 拼装小火车 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 上课的时候,老师说:什么是对象? 然后回答:万物皆对象。要用面向对象的思想去看待一切事物,平时生活中就要用这种思路。1.见过一个经典的问题,就是在你为你的类创建方法的时候,问自己一句“是狗在摇尾巴,还是你在摇狗尾巴”(是类本身的行为,还是你操作类作出的行为);2. 多看代码,多自己写代码;3. 如果不看设计模式你只能学会面向对象是如何实现的(语法),看了才知道如何设计。当然也有看了设计模式只知道设计模式是怎么实现的,但是还是不会设计;4.面向对象分析眼中只有“存在”,而不是什么“所有”。所谓“所有x都做了a这件事”,是指你用实际行动真正否定了“存在一个x它没有做a这件事”。5.面向对象是对个体 阅读全文
posted @ 2012-04-26 13:46 拼装小火车 阅读(848) 评论(0) 推荐(1) 编辑
  2012年4月25日
摘要: 编程背景:已知有string对象,编写程序分离该string中所有单词,将包含'.'的单词转换为float类型,其他的单词转换为int类型Pass1: 分离单词 string word; char sep = ' '; int startPos = 0, endPos = 0, wordlen = 0; endPos = ss.find_first_of(sep,endPos); //第一个单词是以' '结尾,和下面的while循环处理的情况不同 if (endPos == string::npos) wordlen = ss.size() .. 阅读全文
posted @ 2012-04-25 20:58 拼装小火车 阅读(417) 评论(0) 推荐(0) 编辑
摘要: vector : C++ STL中的顺序容器,封装数组1. vector容器的内存自增长与其他容器不同,其内存空间只会增长,不会减小。先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能难以接受。因此STL实现者在对vector进行内存分配时,其实际分配的容量要比当前所需的空间多一些。就是说,vector容器预留了一些额外的存储区,用于存放新添加的元素,这样就不必为每个新元素 阅读全文
posted @ 2012-04-25 20:39 拼装小火车 阅读(57233) 评论(5) 推荐(4) 编辑