- 博客(22)
- 资源 (2)
- 收藏
- 关注
原创 C++11 多线程2——Mutex的错误使用
本系列文章主要介绍C++11中多线程的使用方法,主要参考书籍为《C++Concurrency IN Action》。 为了保证多线程访问数据的安全性,一种通常的做法是对需要保护的数据上锁,使用mutex保证互斥访问。可以使用的做法是调用lock()和unlock()函数,但是我们更加推荐使用模板类std::lock_guard,在该类的构造函数中完成lock(),而在析构函数中完成un
2015-08-28 11:06:45
3885
原创 脱离OpenCV Manager
脱离OpenCV Manager 做为OpenCV4Android的系列博客,本文将给出一个打包OpenCV API到APK使Android应用脱离OpenCV-Manager的例子。 首先依然强调一点:不要盲目相信任何“大神”的博客,官方文档才是最佳的参考资料。 关于脱离OpenCV Manager的方法,官方文档给出了一个解决方案,链接如下:http:/
2015-03-23 19:34:44
1939
原创 机器学习(6)——Logistic回归
机器学习(6)——Logistic回归一、Sigmoid函数 首先阐述一下回归的概念,假设现在有一些数据点,我们用一条直线对这些点进行拟合,这个过程就叫做回归。利用Logistic回归进行分类的主要思想是:根据现有数据对分类边界建立回归公式,以此进行分类。我们想要的函数应该是,能接收所有的输入,然后预测出类别。在二分类的情况下上述函数输出0或1。最典型的函数就是单位阶跃函
2015-03-15 14:45:07
844
原创 反距离权重法生成DEM(利用KD-tree实现KNN算法)
一看到标题可能就郁闷了,什么是KD-tree,什么是KNN。没关系我会一一解释,生成DEM这个程序我写了好久也主要在完成KNN这个算法。不过,首先用ArcGIS看一下我们数据点的分布(图1)以及最终生成的DEM(图2)。反距离权重插值方法是一种局部插值方法,它假设未知值的点受较近控制点的影响比较远控制点的影响更大。这种方法通常用在计算机辅助制图方面。影响的程度(权重)用点之间距离乘方的
2015-03-11 20:13:04
7610
5
原创 机器学习—朴素贝叶斯进行文本分类
一、贝叶斯决策理论 给定一个点(x,y)要决定属于哪一个类别(类别1,类别2)我们一般的处理方法是: 如果:P1(x,y)>P2(x,y)类别为1 如果:P2(x,y)>P1(x,y)类别为2 这就是贝叶斯决策理论的核心思想——选择具有最高概率的决策。 二、条件概率 条件概率P(a|b)表示在事件b已经发生的情况下事件a出
2015-03-10 20:49:19
741
原创 机器学习(4)——KNN算法及手写数字的识别(二)
机器学习——KNN算法及手写数字的识别(二) 说的是手写数字识别,你拿一堆 这样的“图片”去识别,分类有什么意思呀。 在上一遍博文中我们有了一个对手写数字采用kNN算法的分类器,这篇博文将利用该分类器完成一个完整的手写数字分类功能。程序的输入为我们手机拍摄的一张照片如下图所示: 为了使用我们训练好的分类器,我们需要对这张照片进行处
2015-03-08 21:15:30
1332
原创 机器学习(3)——KNN算法及手写数字的识别(一)
机器学习——KNN算法及手写数字的识别(一)邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。搬出一张最常见的图,来直观的展示什么是KNN算法: kNN比较好理解,其一般过程如下: 对未知类别属性的数据集中的每
2015-03-07 10:37:06
1343
原创 机器学习(1)——常用术语
机器学习(1)——常用术语欠拟合:模型假设太严格,所以模型不能拟合到实际数据解决方案:使用更多的特征有利于拟合,选用一个学习能力更好的拟合算法 过拟合:算法不仅学习了数据,而且吧噪声也当做信号学习,这样算法推广能力差解决方案:增加训练数据量可使得拟合曲线更光滑,减少特征数量降低过拟合程度,使用学习能力差的算法。
2015-01-05 09:40:54
1308
原创 OpenCV 笔记一:微分、梯度,Sobel、角点及Sift特征点
题记:发现之前写的代码很多都不知道放在哪里了,时间长了看过的东西,写的代码也就忘了。有一种忙了好一阵子却没什么收获的感觉,因此从今天开始把学习到的东西都整理下来,先优快云,有成熟的项目代码后在放到Github上。一、微分、梯度 数学函数的微分可以有不同术语的定义,但任何定义都必须保证以下几点:一阶微分:1、在平坦段(灰度不变的区域),微分值为0
2014-12-12 11:04:40
2345
原创 OpenCV 3.0 使用GDAL例程
OpenCV3.0 使用GDAL例程OpenCV3.0 开始逐步加入对GDAL的支持,为了进一步学习,先尝试了下OpenCV3.0库里提供的一个例子。源码我不在贴出来了,大家到https://github.com/Itseez/opencv/blob/a602185fb647b30bbd3d9938954965a4ca34b40a/samples/cpp/tutorial_code/H
2014-11-11 02:20:39
3400
原创 OpenCV4Android 2,脱离JNI的C++接口
OpenCV4Android 2,脱离JNI的C++接口——让你的OpenCV程序远离Android
2014-04-21 21:44:03
2328
原创 第一个OpenCV4Android
做第一个OpenCV4Android程序的时候遇到很多问题,网上的资料也很杂,开发方式也很多,这里我仅给出一个使用Native/C++开发Andriod平台下OpenCV的案例。一、需要的软件如下(百度到各官网下载即可):1、adt-bundle-windows-x86_64-20140321(就是集成ADT CDT等环境的eclipse,也是Google所推荐的开发Android应用
2014-04-16 10:48:10
9988
原创 C++正则表达式
关于正则表达式的由来及所有语法在这里不做介绍,大家可以参照下面网址中给出的例子。http://www.jb51.net/tools/zhengze.html这里将我程序中涉及到的内容,作为一个例子写出来:首先,大家都知道正则表达式最核心的工作就是可以匹配文本,那么我们也就可以利用正则表达式来提出文件中的“脏数据”待处理的数据如下:146573.100000 3
2014-03-31 21:40:30
1030
原创 C风格读取文件
最近写的程序很多涉及文件读取,学习到的相关内容整理如下:首先我们整理有关C风格的文件读取。1、文件打开fopenFILE*fopen(constchar*filename,const char*mode);第一个参数文件名,第二个参数打开方式例如:FILE *fp=fopen("123.txt","r");关于第二个参数,主要方式有以下几种:
2014-03-31 18:46:39
958
原创 《COM技术内幕》 学习二
上一部分内容介绍了COM最核心的概念接口,当然那不是真正意义上的COM接口,真正的COM接口都是从IUnknown接口继承的,并且其vtbl指针的前三个函数必须是:QueryInterface()、AddRef()、Release()。1、IUnknown接口 首先一切接口都要继承自IUnknown接口,其在Unknwn.h中的定义摘录如下:interface Iu
2014-03-14 17:51:09
1154
原创 《COM技术内幕》学习一
两年前大三下学期,听完崔神的GIS中的现代软件技术,和很多同学一样把《COM技术内幕》《Visual C++开发COM程序》奉为经典。但是苦于当初知识水平有限,又没有写过任何的COM组件甚至没有用过COM组件,这些书都是翻了两页就看不下去了,对于我来说实在是太晦涩。 前几天用C++做了些ArcGIS的二次开发,对组件有了点使用体会,反过来在看《COM技术内幕》有种豁然开朗的感觉
2014-03-14 16:31:20
1140
原创 鹰眼地图的实现(C++)
关于上一篇博文的补充:对于MapControl中的事件响应函数,以下两种形参声明方式等价:voidOnExtentUpdated(const VARIANT FAR&displayTransformation,VARIANT_BOOL sizeChanged,constVARIANT FAR& newEnvelope); voidOnExtentUpdated(VARIAN
2014-03-09 01:16:30
2093
原创 手动添加MapControl中的消息响应函数
在利用ArcGIS二次开发实现“鹰眼”功能时发现在MapControl控件不能自动添加控件事件(OnMapReplaced、OnExtentUpdated等)。咨询ESRI支持中心后给出的回答是:“在ArcGIS 10.0之后对于MFC框架的支持出现了一些障碍,导致ArcGISEngine中的ActiveX控件无法注册。” 既然这样那么我们就动手自己添加我们所需的响应函数。
2014-02-27 21:25:05
2784
原创 理解接口开发中的*Ptr
例:typedef _com_ptr__t>IWorkspaceFactoryPtrIWorkspaceFactory p; //不能实例化抽象类IWorkspaceFactoryPtr ipWorkSpaceFactory; //正确先来看简单的,_uuidofMSDN上的
2014-02-23 10:30:37
1221
转载 new创建对象和直接声明创建对象
在C++里面可以new对象,也可以直接声明对象。编译器把内存分为三个部分:1.静态存储区域:主要保存全局变量和静态变量。 生存期:整个程序。2.堆:存储动态生成的变量。生存期:自己来决定。3.栈:存储调用函数相关的变量和地址等。生存期:所处的语句块(既{}的范围)假设定义一个类Myclass(1)声明创建对象我们要创建
2013-11-11 21:52:39
1247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人