2013年10月14日

让opencv程序在没有安装opencv的电脑上运行

摘要: 经常需要把用opencv写的程序拿到没有装opencv的电脑上去运行和演示,要让opencv程序脱离opencv环境,一般有两种方法: 一种是动态链接opencv,即把相应的dll拷贝到exe所在目录,然后一起拿到目标电脑上去运行;另一种是将相应dll中的函数打包进exe,然后直接拷贝exe到目标电脑上去运行,即静态编译。 这里以VS2008+opencv2.4.6编写的win32控制台程序为例介绍静态编译的步骤: 1. 将opencv安装目录\build下的include文件夹拷贝到当前工程目录下,重命名为opencv_include; 2. 将opencv安装目录\build\... 阅读全文

posted @ 2013-10-14 23:40 文森vincent 阅读(5018) 评论(0) 推荐(0) 编辑

2013年9月14日

C/C++创建多级目录

摘要: 常常需要在非MFC的环境下创建目录,尤其是多级目录,这里写了一个创建多级目录的子函数CreateDir,以后需要就可以直接拿来用了。 1 #include 2 #include //_mkdir函数的头文件 3 #include //_access函数的头文件 4 5 using namespace std; 6 7 void CreateDir( const char *dir ) 8 { 9 int m = 0, n;10 string str1, str2;11 12 str1 = dir;13 str2 = str1.su... 阅读全文

posted @ 2013-09-14 11:44 文森vincent 阅读(11405) 评论(1) 推荐(0) 编辑

2013年8月6日

批处理命令(获得文件名)

摘要: 最近接到一个任务,有很多图像文件(JPG格式)存放在某一路径下的很多子文件夹中,现在需要把它们的名字打印到一个txt中。 最开始想到的是,从DOS进入到每个子文件夹中,使用命令:dir /b >info.txt, 将该子文件夹下的所有图像名字打印到info.txt中,但是子文件夹的个数太多,得不停的回退到上一目录,又进入下一目录,真是太麻烦,于是想有没有更简单的方法。 在网上搜到批处理的for命令可以解决这一问题,在当前路径中新建一个txt文件,输入如下命令: for /r E:/2003/04 %%i in (*.jpg) do echo %%i >> 2003_04.tx 阅读全文

posted @ 2013-08-06 00:19 文森vincent 阅读(4794) 评论(0) 推荐(0) 编辑

2013年6月1日

vector的resize(new_size,new_element)方法

摘要: 一直以来对vector的resize(new_size, new_element)方法有个很深的误解,以至于程序运行结果不对却怎么也检查不出来。原以为该方法是清空vector内的原有元素,然后添加指定个数的新元素,最后却发现不是这样的。 运行下面程序: 1 void print( vector<int> &a ) 2 { 3 int i; 4 for ( i=0; i<a.size(); i++ ) 5 { 6 printf( "%d ", a[i] ); 7 } 8 printf("\n"); 9 }10 11 void ma 阅读全文

posted @ 2013-06-01 10:45 文森vincent 阅读(380) 评论(0) 推荐(0) 编辑

2013年1月25日

二值图像的贴标签算法

摘要: 贴标签就是将二值图中属于同一个连通域的像素标记起来。之前编的程序需要多次遍历图像,所以速度比较慢,最近有朋友告诉我一种更简单的方法。这里对二值图中白色的连通域进行贴标签,具体步骤是: 1、按行遍历图像,当遇到一个白点时,说明遇到了一个标签区域; 2、将当前白点的坐标作为种子点入栈; 3、判断栈是否为空,若栈非空,则在栈顶元素所在位置贴上对应的标签号,同时将二值图上的该位置赋成别的颜色(表明当前元素已经贴过标签),弹出栈顶元素,并将其8邻域的白点入栈,重复3直到栈空,这时,当前连通域已经完成贴标签过程; 4、继续按行遍历图像,直到遇到下一个白点,然后重复步骤2-3,直到遍历完图像; ... 阅读全文

posted @ 2013-01-25 16:54 文森vincent 阅读(3015) 评论(0) 推荐(0) 编辑

2013年1月24日

大津法图像分割

摘要: 大津法是一种基于类间方差最大的图像分割(二值化)方法,在实际应用中被广泛使用。大津法属于阈值分割方法,它的阈值是全局的、自适应的。它的基本思想是这样的: 设图像总像素数为 N ,灰度范围为 [0, L-1] 。灰度级为 i 的像素出现的频数为 ni,i=0,1,...,L-1 。图像中的像素点可以用阈值T分割成两类,即[0, T]∈C1和[T+1, L-1]∈C2。设C1中的像素数为N1,C2中的像素数为N2(N2=N-N1),则C1和C2的均值分别为: 令 则整图的均值为: 定义类间方差为: 遍历T的可能取值,即1 ~ L-2 ,使类间方差最大的阈值T即为大津... 阅读全文

posted @ 2013-01-24 19:38 文森vincent 阅读(1457) 评论(0) 推荐(0) 编辑

2012年8月29日

高斯函数及其各阶导数

摘要: 在图像处理中经常要用到高斯函数,高斯滤波是典型的低通滤波,对图像有平滑作用。高斯函数的一阶、二阶导数也可以进行高通滤波,比如canny算子中用到的是高斯函数的一阶导数,LOG算子中用到的是高斯函数的二阶导数。高斯函数的相关公式如下所示: 一维和二维高斯函数表达式分别为: 二维高斯函数... 阅读全文

posted @ 2012-08-29 23:11 文森vincent 阅读(20096) 评论(2) 推荐(1) 编辑

导航