随笔分类 -  opencv

摘要:在做ocr的分割部分,然后看到了 kmeans ,将二值化的后白色像素坐标作为特征输入,以此做分类分割。 投影分割神马的就不用了 。这个opencv有支持省事。// kmean.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv/cv.h>#include <opencv/cvaux.h>#include <opencv/highgui.h>#include <opencv/cxcore.h>#include <vector>//#pragma com 阅读全文
posted @ 2012-10-12 16:01 小马_xiaoLV2 阅读(1419) 评论(0) 推荐(0)
摘要:双背景建模即建立两个背景模型,一个更新快的背景模型:1帧更新一次,一个是更新慢的背景模型:30帧(或者N帧)更新一次。更新背景模型我选用平均加权(cvRuningAvg)效果图为演示 检测出杯子被拿走的情况:因为快背景更新较快,所以杯子被拿走后,快背景中的杯子会马上消失而慢背景中的杯子驻留的时间较长。将快慢背景相减 就能获取被子。// lostDetection.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "opencv/highgui.h"#include "opencv/cv.h&qu 阅读全文
posted @ 2012-08-08 13:52 小马_xiaoLV2 阅读(1480) 评论(0) 推荐(0)
摘要:context shape形状上下文中对轮廓点随机采样的实现http://www.cnblogs.com/xiaotie/用C#实现了该算法且有详细的说明,我用opencv实现了一下。效果图:// shapeContenx.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "highgui.h"#include "cv.h"#include "cxcore.h"#include "ml.h"#include <list>using n 阅读全文
posted @ 2012-07-16 15:17 小马_xiaoLV2 阅读(1678) 评论(0) 推荐(0)
摘要:最近在看 serge belongie 的shapecontext paper ,里面有一个极坐标图的显示附带的有matlab的源码,这里用opencv 实现以下。继续啃paper ,有谁也在看一起交流下。void drawPolarCircle(int nmaxR ,int nnumcircle){IplImage * im_src = cvCreateImage(cvSize(nmaxR *2 + 30 , nmaxR *2 +30) , 8 ,3 );cvZero(im_src);float avg = log10f(nmaxR)/nnumcircle;float r =avg;CvPo 阅读全文
posted @ 2012-07-09 13:41 小马_xiaoLV2 阅读(607) 评论(0) 推荐(0)
摘要:对于傅里叶的各种推倒证明这里不提,本文着重‘看公式写代码’。一维离散福利叶变换的公式:反傅里叶:/*函数:FFT2功能:(反)傅里叶变换 --- 基2参数:ptd -- in 空域pfd -- out 频域nlevel --- in 步数sign --- 1 反傅里叶 -1 傅里叶*/void FFT2(complex *pTd , complex * pFd , int nlevel,int sign){int nLength = pow(2.0,1.0*nlevel);complex * pw = (complex * )malloc(nLength * sizeof(complex)); 阅读全文
posted @ 2012-07-06 15:27 小马_xiaoLV2 阅读(984) 评论(0) 推荐(0)
摘要:对于直线倾斜的成串字符 可以通过 开运算连成一片 在用细化算法 求直线 算出倾斜角度 以此纠正// ration1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "highgui.h"#include "cv.h"#include "cxcore.h"#ifdef DEBUG#pragma comment(lib," opencv_core231d.lib")#pragma comment(lib,"opencv_features2 阅读全文
posted @ 2012-07-04 15:40 小马_xiaoLV2 阅读(1166) 评论(0) 推荐(0)
摘要:通过求外接椭圆,算出纠正角度// ration2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "highgui.h"#include "cv.h"#include "cxcore.h"#ifdef DEBUG#pragma comment(lib," opencv_core231d.lib")#pragma comment(lib,"opencv_features2d231d.lib")#pragma comment(l 阅读全文
posted @ 2012-07-04 15:40 小马_xiaoLV2 阅读(644) 评论(0) 推荐(0)
摘要:极坐标通常用于校正图像中的圆形物体或者包含在圆环中的物体。如上图所示 : 设原图变换的中心坐标(即圆心坐标)为 (Mr,Mc),图像上一点(r,c)极坐标变换后为(d,theta)则 d = sqrt((r - Mr) * (r - Mr) + (c-Mc) * (c -Mc)) theta = atan2( - (r - Mr) / (c - Mc))其反变换形式为 r = Mr - d sin(theta) c= Mc + d cos(theta)本程序基于opencv2.3// polar.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h&quo 阅读全文
posted @ 2012-06-19 16:22 小马_xiaoLV2 阅读(4206) 评论(4) 推荐(1)
摘要:基于像素的匹配1、归一化积相关灰度匹配: 模板图像 以窗口滚动的方式 在源图像中 扫一遍。 具体运算公式如下:R(i,j) = dSigmaST / (dSigmaT * dSigmaS)对应上公式; R(i,j)=[0,1]M ,N 模板大小对于公式的解释: dSimgmaST -- 在 在原图(i ,j) 位置 模板图像每个像素与对应原图像素的积 的和)dSigmaT -- 模板图像每个像素的积 的和dSigmaS -- 在原图(i,j)位置,模板图像对应的原图的每个像素的积的和R(i,j)最大的位置就是最匹配的位置。/*函数:NormalizeGrayMatch功能:归一化灰度值匹配参数 阅读全文
posted @ 2012-01-06 16:44 小马_xiaoLV2 阅读(5344) 评论(12) 推荐(2)
摘要:关于canny算法的原理和实现这篇博客有详细的介绍 http://blog.csdn.net/likezhaobin/article/details/6892629下面是本人源码,和opencv的cvcanny的不同之处1.有高斯滤波 , cvcanny 无。2. 上下阈值自动设定,opencv手动设定。// createGuassFilter.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <cv.h>#include <highgui.h>#include <cxcore.h>#if 阅读全文
posted @ 2012-01-06 16:37 小马_xiaoLV2 阅读(1831) 评论(2) 推荐(0)
摘要:/*二值图处理 --- 贴标签法f(i,j) 检测图像 g(i,j) 标签图像初始值为设lab = 01. 从左到右从上到下扫描f(i,j)2. 如果f图像点(i,j)不为指定的值而回到看该点(i,j) 的在g图像的邻域内的lab值情况如果值都为0 则lab +=1 , g(i,j) = lab;如果不为0的值都相同则g(i,j) = lab;如果不为0的值不同即lab2>lab1 (不会出现三个不同值),g(i,j) = lab1 , 所有lab2的值也都改为lab1 ;lab = lab -1 ;3.扫描全部g图终止*/#include "stdafx.h"voi 阅读全文
posted @ 2011-12-01 09:08 小马_xiaoLV2 阅读(1873) 评论(0) 推荐(0)
摘要:最大方差阈值分割法在分割过程中对图像上每个像素都是用了相等的阈值,但在实际的情况中,当照明不均匀,有突发噪声或者背景灰度变化较大时,整幅图像分割时将没有合适的单一阈值,如果仍采用单一的阈值去处理每一个像素,可能会将目标区域和背景区域错误的划分,因此,诞生了自适应阈值分割的思想,即图像中的每个像素对应的阈值可能不相同。一个较为简单的自适应阈值选取方法是:每个像素的阈值由自身为中心的邻域窗口确定,把中值 均值 或者高斯卷积作为阈值,再或者在此基础上加个常量值等等。下面代码由OPENCV实现有两种自动化阈值方式1. CV_BLUR 均值 2. CV_GUASSIA 高斯/*函数 : my_Adapt 阅读全文
posted @ 2011-11-30 10:21 小马_xiaoLV2 阅读(5606) 评论(0) 推荐(0)
摘要:最大方差阈值分割根据图像选择一个最优阈值T,这个T是如何得到的呢?一副图像灰度值取 0~ 255 ,假设以0 为阈值 >0为C1类;其余为C0类 ;在假设以1 为阈值 >1为C1类 其余为C0类 ...依次一直到255那么 0~255哪个阈值才是这副图像最理想的阈值呢?这里就用到最大方差阈值分割设图像像素总数为N ,灰度值范围为[0,L-1],灰度值i 的像素数位n(i) ,则灰度值i 的概率为p(i) = n(i) /N ;把图像中的像素按灰度值用阈值T分成两类C0 C1 , C0 对应于灰度值在[0,T-1]之间的像素,C1对应于灰度值在[T,L-1]之间的像素,则C0,C1的 阅读全文
posted @ 2011-11-29 12:57 小马_xiaoLV2 阅读(1813) 评论(0) 推荐(0)
摘要:注意哦 这里是求圆心 不是球心哦条件:已知空间N点坐标,格式如下 求圆心坐标,半径-33.386698 -12.312448 -2301.396442-33.668120 -12.571431 -2300.390996-33.838611 -12.774933 -2299.691688-34.079235 -13.616660 -2298.326277-34.254998 -13.441280 -2298.192657-34.356542 -13.755525 -2297.796473....................................................... 阅读全文
posted @ 2011-08-30 18:41 小马_xiaoLV2 阅读(5892) 评论(3) 推荐(0)