Waffles——机器学习开发包
Waffles是一款跨平台的、基于命令行的机器学习开发包,包含了现有的主要机器学习算法,完全开源,用C++编写,使用方便。 该工具包的强大之处非常多,很重要的一个方面就是其在非监督学习方面的包罗万象,特别是降维算法,实现了PCA、isomap、LLE、manifold sculpting、breadth-first unfolding
Waffles是一款跨平台的、基于命令行的机器学习开发包,包含了现有的主要机器学习算法,完全开源,用C++编写,使用方便。 该工具包的强大之处非常多,很重要的一个方面就是其在非监督学习方面的包罗万象,特别是降维算法,实现了PCA、isomap、LLE、manifold sculpting、breadth-first unfolding
我也是刚接触到这个开发包,这个开发包也就十几个人写的,有人问我OpenCV里也有ml的部分,如何比较,我感觉这个都是设计的关注点不同,设计的思路当然也不同,用处也不同,我最近在看ml的算法部分,我感觉这个库还是对我的学习有很大帮助的。 先介绍一下这个库的概述吧 waffles_audio包含了处理音
OpenCV中的transpose函数实现图像转置,公式为: 目前fbc_cv库中也实现了transpose函数,支持多通道,uchar和float两种数据类型,经测试,与OpenCV3.1结果完全一致。 实现代码transpose.hpp: //fbc_cv是免费软件,并且使用与OpenCV相同的许可证 #ifndefFBC_CV_TRANSPOSE_HPP_
OpenCV中实现图像翻转的函数flip,公式为: 目前fbc_cv库中也实现了flip函数,支持多通道,uchar和float两种数据类型,经测试,与OpenCV3.1结果完全一致。 实现代码flip.hpp: //fbc_cv是免费软件,并且使用与OpenCV相同的许可证 #ifndefFBC_CV_FLIP_HPP_ #defineFBC_CV
在fbc_cv库中,提供了对图像进行任意角度旋转的函数rotate,其实内部也是调用了仿射变换函数warpAffine。如果图像仅是进行90度倍数的旋转,是没有必要用warpAffine函数的。这里通过transpose和flip函数实现对图像进行顺时针90度、180度、270度的旋转。 用fbc::transpose、fbc::flip和cv:
傅立叶变换将图像分解为其窦道和余弦分量。换句话说,它会将图像从其空间域转换到其频域。这个想法是任何函数可以用无限窦和余弦函数的和来精确地近似。 DFT的性能取决于图像大小。对于数字二,三和五的倍数,图像尺寸趋向于最快。因此,为了获得最大的性能,通常最好将边框值填充到图像以
OpenCV中的cv::imdecode函数是从指定的内存缓存中读一幅图像,而cv::imencode是将一幅图像写进内存缓存中。cv::imread是从指定文件载入一幅图像,cv::imwrite是保存一幅图像到指定的文件中。 cv::imread和cv::imdecode内部都是通过ImageDecoder类来进行图像解码的。cv::write和cv::e
由于OpenCV自带的cvInitFont和cvPutText函数不支持向图像中写入中文,在windows7 64位机上用vs2008+OpenCV2.3.1实现具体步骤如下: 1、新建一个控制台工程Test; 2、将C:\WINDOWS\Fonts\simhei.ttf文件和CvxText.h、CvxText.cpp文件复制到工程Test文件夹下,并添加到Test工程中; 3、将
Opencv 从c到c++ Opencv2.0版本发布后,其新的C++接口,cv::Mat代替了原来c风格的CvMat和IplImage.目前,2.0版本对c的接口也是支持的。 相对于c的接口,c++的cv::Mat统一了矩阵和图像这两个概念。事实上,矩阵和图像其实是一样的。由于cv::Mat是c++的类,所以也具备了相关的一些特征。例如,内
OpenCV提供了一個通用矩陣乘法的函式,cvGEMM(),代表的是GEneralized Matrix Multiplication,cvGEMM()可以處理線性代數方面許多的乘法運算,cvmMul()矩陣乘法這個函式就是從這裡來的,cvmMul()在"cvcompat.h"及"cxcore.h"這兩個函式庫被定義為 #define cvmMul(src1,src2,dst) cvMat
一、结构 IplImage |-- intnChannels;// 彩色通道数量 (1,2,3,4) |-- intdepth;// 像素深度(以位为单位): |//IPL_DEPTH_8U, IPL_DEPTH_8S, |//IPL_DEPTH_16U,IPL_DEPTH_16S, |//IPL_DEPTH_32S,IPL_DEPTH_32F, |//IPL_DEPTH_64F |-- intwidth;// 图像宽度(以像素为单位) |-- intheight
OpenCv矩阵操作 有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处理ROI部分 少部分函数支持COI,如果COI设置,只处理感兴趣的通道 矩阵逻辑运算 void cvAnd(const CvArr* src1,con
OpenCV- Operations on Arrays 对数组(矩阵)的一些操作 Function (函数名) Use (函数用处) add 矩阵加法
这里简单的记录一些OpenCV这个库的使用。这是用 C/C++写的一个和 computer vision 相关的库,一共含有 5 个组件: •CXCORE是 OpenCV 里面使用的常用数据结构,以及处理这些数据结构的函数。 •CV是常用的 computer vision 相关的函数,比如计算 histogram、目标检测、跟踪的程
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的
<spanstyle="background-color:rgb(249,249,249);font-family:tahoma,helvetica,arial;">一、理论资料</span> codebook背景建模方法,OpenCV库中还没有对应的函数。在《learning opencv》中相应的代码,但是不完善甚至,有错误。 对codebook理论作简要的介绍,部分引用如下: Co
cvCreateStructuringElementEx 创建结构元素 IplConvKernel* cvCreateStructuringElementEx( int cols, int rows, int anchor_x, int anchor_y,int shape, int* values=NULL ); cols:结构元素的列数目 rows:结构元素的行数目anchor_x:锚点的相对水平偏移量anchor_y:锚点的相对垂直偏
cvCloneImage()每次使用时编译器会分配新的内存空间,不会覆盖以前的内容,所以如果在循环中使用内存会迅速减小,每次用完都需要用cvRelease来释放。 解决方法是使用cvCopy函数代替。 cvCopy(pSrcImg,pImg,NULL); //代替 pImg = cvCloneImage(pSrcImg); pImg初始化时必须分配空间,
OpenCV中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化。而CvMat和IplImage类型更侧重于图像,opencv对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。在open
[cpp]view plaincopy print? 两数组最短距离 Time Limit(Common/Java):1000MS/10000MS Memory Limit:65536KByte Total Submit: 86 Accepted: 41 Description 已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小
方向梯度直方图(Histograms of Oriented Gradients,简称HOG特征)结合支持向量机( support vector machine, 简称SVM),被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。 积分直方图可以用于快速计算原始图像矩形区域内的HOG特征。积分直方图的概念类似与viola和jones在脸部识别
最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章。一直想做个总结,拖着拖着,终究却写成这篇极不成功的总结。 背景建模或前景检测的算法主要有: 1. Single Gaussian (单高斯模型) Real-time tracking of
2.7.代码编译 <规则1> 打开编译器的所有告警开关对程序进行编译。 防止隐藏可能是错误的告警。 <规则2> 在同一项目组或产品组中,要统一编译开关选项。 <规则3> 某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告警信息。 在Borland C/C++中,可用#pr
2.6.代码可测性 <规则1> 模块编写应该有完善的测试方面的考虑。 <规则2> 源代码中应该设计了代码测试的内容,如打印宏开关、变量值、函数名称、函数值等。 在编写代码之前,应预先设计好程序调试与测试的方法和手段,并设计好各种调测开关及相应测试代码如打印函数等。 程序的调试
2.5. 接口 <规则1> 头文件应采用 #ifndef / #define / #endif 的方式来防止多次被嵌入。 示例如下: 假设头文件为揇EF.INC",则其内容应为: #ifndef __DEF_INC #define __DEF_INC ... #endif <规则2> 去掉没有必要的公共变量,编程时应尽量少用公共变量。 公共变量是增大模块间耦合