摘要: cv::Mat和CvMat都可以表示图像数据,其中cv::Mat是一个类(Class),是C++接口,而CvMat是一个Struct,从类型上就可以知道二者存在很大区别。前者除了几个成员变量之外还有很多的成员函数和重载函数,可以实现很多的图像数据处理功能,而后者只有几个成员变量,要对其成员进行一些处 阅读全文
posted @ 2013-04-17 15:30 bugless6481 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 最新版本的OpenCV: 数据结构 储存图像的数据类型不再是 IplImage 的指针, 使用 cv::Mat 即可。 读取图像 读取图像的函数改为: cv::imread(const string & FileName, int flag) 其中,可选的 flag 有 CV_LOAD_IMAGE_ 阅读全文
posted @ 2013-04-17 14:58 bugless6481 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 数组指针和指针数组的区别数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0] p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]所以数组指针也称指向一维数组的指针... 阅读全文
posted @ 2013-04-17 09:05 bugless6481 阅读(159) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/wuxiaoyao12/article/details/7305848CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)一、Mat类型:矩阵类型,Matrix。在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。Mat有3个重要的方法:1、Matmat=imread(constString*filename);读取图像2、imshow(conststringframeName,InputArraymat);显示图像3、imwrite(conststring&filen 阅读全文
posted @ 2013-04-11 19:26 bugless6481 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 在这里,大家可能有一个误区,认为eof()返回true时是读到文件的最后一个字符,其实不然,eof()返回true时是读到文件结束符0xFF,而文件结束符是最后一个字符的下一个字符。如下图所示:因此,当读到最后一个字符时,程序会多读一次(编译器会让指针停留在最后一个字符那里,然后重复读取一次,这也就是就上面最后一个字符会输出两次的原因。至于是不是所有的编译器都这样处理我就不太清楚了,我使用的VC6,VC8似乎都是这样的)解决办法:1.提前读一个出来,eof标志是在最后一次读取数据时置位的,这一次并没有读数据,所以你不应该输出数据。对输入流的状态的检测应该紧跟在输入操作之后,不应该对输入失败的进 阅读全文
posted @ 2013-04-08 13:18 bugless6481 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 为了相对透彻的了解C程序运行期的初始化顺序,首先介绍一些名词定义。用过Java的同志都知道, Java是一种跨平台语言。真的是所有的平台都能自如的运行Java程序吗?当然不可能。运行它的前提是你需要安装Java Run-time(JRE)。C语言也需要自己的运行期类库,windows系统正好支持这种类库,所以C++程序可以顺利的在windows系统上运行了。这个类库叫C Run-time(CRT), CRT这个名词可能并不陌生,大家在很多地方都看见过它。它建立了C程序运行环境。有些同志可能想过这样的问题。C程序怎么找到main函数的呢?其实是CRT执行了你的main函数或者WinMain函数的 阅读全文
posted @ 2013-04-08 10:28 bugless6481 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 设备描述表是一个包含设备信息的结构体(物理设备如显示器、打印机),MFC中关于图像操作都需要DC来完成。HDC是Windows的一种数据类型,是设备描述句柄;CDC是MFC封装的Windows 设备相关的一个类;CClientDC是CDC的衍生类,产生对应于Windows客户区的对象,在构造的时候调用GetDC,在析构的时候调用ReleaseDC; CWindowDC也是CDC的衍生类,在构造的时候调用GetWindowDC,在析构时调用ReleaseDC,可访问CWnd的整个屏幕,包括客户去和非客户区。CDC是Windows绘图设备的基类。CClientDC:(客户区设备上下文)用于客户区的 阅读全文
posted @ 2013-03-29 17:35 bugless6481 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 虚函数:virtual void breather(){ cout<<"annimal breather"<<endl;} 从代码中可以看出,虚函数有方法体。虚函数主要是c++的多态性,当编译器编译的时候,发现breather()是一个虚函数,这时候c++就会才用迟绑定(late binding)技术。也就是编译时不确定具体调用的函数,而在运行时,依据对象的类型来确定调用哪一个函数,这种能力叫C++的多态性。与之对应的是早期绑定(early binding),多态性通过迟绑定来实现的。总之一句话,在基类的函数中加virtual关键字,在派生类中重写该 阅读全文
posted @ 2013-03-27 20:20 bugless6481 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 1. 标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音和数字编号。2. 尽量与操作系统和开发工具风格保持一致(Windows一般采用“大小写“混排)。常量3. 常量全用大写的字母,用下划线分割单词。如: const int MAX=100;const int MAX_LENGTH=100;变量4. 全局变量使用前缀g_。如:int g_value;5. 静态变量使用前缀s_。如:static int s_initValue;6. 变量和参数用小写字母开头的单词组合而成。如:int drawMode;7. 变量名使用“名词或形容词+名词“。如:float value,newval 阅读全文
posted @ 2013-03-27 00:36 bugless6481 阅读(937) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include "time.h"//#include "stdlib.h"using namespace std;int main(){ time_t rawtime; //时间变量 struct tm * timeinfo; //时间的结构指针 time ( &rawtime ); //-- 获取时间,以秒计,从1970年1月一日起算,存于rawtime timeinfo = localtime ( &rawtime ); //ocaltime ( &rawtime ); -- 阅读全文
posted @ 2013-03-26 14:43 bugless6481 阅读(136) 评论(0) 推荐(0) 编辑
关注我的博客