摘要:
今天在VS2008中使用OpenCV2.1,发现使用cvLoadImage读大图片文件时内存访问越界,网上搜了一下原来是BUG。 网上修改方法如下: patch for file: src/highgui/grfmt_bmp.cpp (line 198) change from: AutoBuffer _src, _bgr; if( (m_bpp != 24 || !color) ) _src.allocate(src_pitch + 32); to: AutoBuffer _src, _bgr; // bug fix, otherwi... 阅读全文
摘要:
今天看C编程指南里说道:1)在多重循环中,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨循环层执行的次数。参考代码如下:1 //低效率:长循环在最外层 2 for(row=0;row<100;row++) 3 { 4 for(col=0;col<5;col++) 5 { 6 sum=sum+a[row][col]; 7 } 8 } 1 //高效率:长循环在最内层 2 for(col=0;col<5;col++) 3 { 4 for(row=0;row<100;row++) 5 { 6 sum=sum+a[row][col]; 7 } 8 } 2)如果在 阅读全文
摘要:
opencv论坛和一些博客上看到的方法:cvFindContours 获取轮廓后用 cvDrawContours 来画,要画出或复制区域内的内容,可以使用如下代码: cvDrawContours(mask, contour, cvScalarAll(255), cvScalarAll(255), 0, -1); cvCopy(src, dst, mask); 该代码的意思是把提取到的轮廓的边界以及内区域都画到一个 mask 上,然后再通过 cvCopy 将该区域内的图像内容复制到 dst 中。 其中,cvDrawContours 的第 6 个参数是 int thickness CV_DEFAU 阅读全文
摘要:
之前用到opencv最小外接矩形去表示一个类椭圆形的高度,特此记录备查。对给定的 2D 点集,寻找最小面积的包围矩形,使用函数:CvBox2DcvMinAreaRect2(constCvArr*points,CvMemStorage*storage=NULL); points 点序列或点集数组 storage 可选的临时存储仓 函数 cvMinAreaRect2 通过建立凸外形并且旋转外形以寻找给定 2D 点集的最小面积的包围矩形。其中返回的2D盒子定义如下:1 typedefstructCvBox2D 2 { 3 CvPoint2D32fcenter;/*盒子的中心*/ 4 CvSi... 阅读全文
摘要:
今天新建了一个工程打算把OpenCV的头文件和库文件放到工程文件夹中使用,以便今后拷贝只拷工程文件夹,不用安装OpenCV。 在 #include "stdafx.h" 里添加库函数 1 #pragmacomment(lib,".//lib//cv.lib") 2 #pragmacomment(lib,".//lib//cxcore.lib") 3 #pragmacomment(lib,".//lib//highgui.lib") 图像处理类里添加头文件,头文件和库文件都是用相对路径 1 #include" 阅读全文