- 博客(87)
- 资源 (3)
- 收藏
- 关注
原创 【Linux】Linux服务器解决python3.7与openssl的低版本不兼容的问题
安装了Python3.7之后,遇到的一个很麻烦的坑就是与系统自带的ssl版本不兼容,Python3.7需要的openssl的版本为1.0.2或者1.1.x,这个requirements在config Python3.7的时候使用“--with-ssl”选项会报出。Could not build the ssl module!Python requires an OpenSSL 1.0.2...
2019-07-26 18:17:38
7847
4
原创 【Linux】Linux服务器安装cmake/gcc/xgboost
1、xgboost安装前的准备(1)xgboost依赖需求:The minimal building requirement is:A recent C++ compiler supporting C++11 (g++-4.8 or higher)CMake 3.2 or higher(2)查看当前gcc、cmake版本:gcc --versioncmake --vers...
2019-07-25 17:32:19
1442
原创 【Linux】Linux服务器安装python3.7
Linux服务器系统默认的python版本通常是python2,如果需要使用最新的python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存。Python官网下载python,下载之后的安装包“Python-3.7.3.tgz”保存到了本地的电脑上,需要scp的服务器的指定路径下。也可以使用wget命令直接在服务器上获取...
2019-05-14 19:36:47
2762
1
原创 【机器学习】word2vec学习笔记(一):word2vec源码解析
本文主要对google的word2vec源码进行了简要的分析,并给出了源码的一些注释。对于word2vec的算法原理并没有进行深入的讨论。
2019-04-30 20:36:23
1424
原创 【Mac】解决macOS版本更新失败的问题
问题描述:如果mac勾选了“自动保持我的Mac最新”功能,那么mac会在apple发布新的OS版本时,会自动下载与更新macOS。在升级比较大的“补丁”的过程中可能会出现无法安装新的补丁的情况,报错为:“安装所选更新时发生错误”。原因分析:系统在下载补丁的过程中出现了中断下载的现象,也就是完成的补丁包并没有下载完成。具体原因在于,Apple在10.11中全面启用了名为System ...
2019-04-12 12:13:38
58067
2
原创 【机器学习】从GB到GBDT再到XGBOOST算法解析
Part1:GBPart2:GBDTPart3:XGBOOST1、监督学习的主要概念回顾:第i个训练样本:模型的目的:根据给定的预测 参数:需要从数据集中学到的东西,如线性模型的参数集为:目标函数目标函数=训练损失+正则项,公式化表示为:obj(θ)=L(θ)+Ω(θ),其中,目标函数为obj(θ),用来衡量模型训练的整体目标;训练损失为L(θ),用来...
2019-03-25 15:58:19
806
原创 【Mac】Mac上切换系统默认的python版本
最近使用pip命令安装python包,终端弹出:于是,强迫症怒发作,果断决定将系统默认的python切换到已经安装的python3。提示:如果mac中没有python3,可以如下使用命令进行安装。brew install python3说明:在进行版本切换之前,首先应该确定新版本的python3是否存在以及其在mac系统下的路径。其中涉及了一些乱七八糟的映射与软连接之类的路径...
2019-03-22 17:25:21
7198
1
原创 【Mac】在Mac下完全卸载IntelliJIdea(IDEA)
这几天在学习Python,在终端使用Vi写一些小程序还可以,遇到稍微大一点的程序就比较麻烦。于是,安装了一个IDEA,并进行了一些配置。我也是第一次使用这个强大的IDE,配置的时候也没怎么注意看,胡乱弄的乱七八糟,尤其是后来连接服务器的配置更是乱。一怒之下就卸载了。等重新安装的时候,发现Mac并没有卸载干净,只是卸载的表面的软件,一些具体的配置信息还被保留着。于是,各种百度、谷歌,终于找到...
2019-03-19 19:17:23
15881
原创 【Mac】在Mac OS X下解决opencv与Python的No module named cv2问题
最近遇到一个图像项目,打算搞一搞,看了一些代码,发现用Python处理比较方便,鉴于之前做图像都是使用C++、OpenCV,这次打算看看Python与CV的性能与效果。我之前的mac上面是安装了Python与opencv的,但都是分别安装的,并没有进行一些合用配置。在敲代码的时候,刚写到import cv2,Idea变报错:No module named cv2。惊之,于是google解之。
2017-09-03 22:56:15
8818
2
原创 【Mac】在Mac OS X下安装ffmpeg并调试
安装ffmpeg并编译的相关博客1、 http://blog.sina.com.cn/s/blog_61e70c010102w5z5.html2、 http://www.liaoxuefeng.com/article/0013738927837699a7f3407ea5f4b5caf8e1ab47997d7c50003、 http://blog.csdn.net/bu
2017-02-27 21:24:26
912
转载 【C++】Keans聚类算法的C++实现
Kmeans算法的实现步骤: 1、从D中随机取k个元素,作为k个簇的各自的中心。 2、分别计算剩下的元素到k个簇中心的相异度(元素到簇中心的欧氏距离),将这些元素分别划归到相异度最低的簇。 3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。 4、将D中全部元素按照新的中心重新聚类。 5、重复第4步,直到聚类结果不再变化。 6、将结果输出。inclu
2017-02-25 20:54:04
1441
原创 【OpenCV】Mac下使用Qt Creator配置OpenCV
本文主要介绍在Mac系统下,使用Qt Creator来配置OpenCV。基本的OpenCV、Qt的安装与版本选择,这里不做详细介绍,这方面的教程网上一堆,随便搜一下就好。本文的主要参考博客:
2017-02-25 18:43:28
1226
原创 【深度学习】在Mac下安装深度学习框架Caffe并测试Mnist数据集
首先,给出本人使用的Mac信息,不同的系统信息需要配置不同的工具。在介绍适合自己的配置方法之前,列车本文参考的两篇博客,供参考。1、http://blog.csdn.net/taigw/article/details/506832892、http://www.linuxidc.com/Linux/2016-09/135026.htm
2017-02-23 15:53:05
1672
1
原创 【OpenCV】Mac OS X平台使用Xcode搭建OpenCV环境
本文介绍的是如何在Mac系统下搭建OpenCV环境。软件需求:Mac OS(我的是10.11.6)、Xcode(我的是8.1)、OpenCV(不建议去官网先下载,具体的后续会说明)。1、安装Homebrewbrew官网安装方法:打开mac终端,输入下面的命令:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Home...
2017-02-14 21:00:23
4658
原创 【数据结构】二叉树的遍历
二叉树的遍历大致可分为先序遍历、中序遍历、后序遍历和层次遍历四种。具体的实现原理都比较简单,这里不再描述,现在给出具体的遍历算法。本文给出了二叉树遍历的递归算法和非递归算法,这样有助于对照了解。二叉树的结构体 typedef struct BinTreeNode { int data; // 默认结点中存储整型数据 struct BinTreeNo
2016-08-26 17:13:02
723
原创 【数据结构】数据结构中常用的排序算法
排序是数据结构中重要的内容,也是面试过程中经常涉及的部分。在这里,我给出几个基本的排序算法的C/C++代码。对于具体的排序的原理,不做太多的介绍,随便找一本数据结构教材都能弄清楚。声明:1、以下给出的代码并没有判断边界条件,只是给出了算法的核心代码,如果遇到具体的问题,应该加以判断。 2、算法实现的是升序排列。1、插入排序1、直接插入排序void InsertSort(int* A, int n)
2016-08-26 16:39:18
919
原创 【C++】STL常用容器总结之十二:string类
13、string类声明string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍。 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下的需要。我们尽可以把它看成是C++的基本数据类型。 首先,为了在我
2016-08-25 13:02:43
22211
6
原创 【C++】STL常用容器总结之十一:容器小结
12、容器小结1、容器的选用Vector和deque容器提供了对元素的快速访问,但付出的代价是,在容器的任意位置插入或删除元素,比在容器尾部插入和删除的开销更大,因为要保证其连续存储,需要移动元素;list类型在任何位置都能快速插入和删除,因为不需要保证连续存储,但付出的代价是元素的随机访问开销较大。特征如下: - 与vector容器一样,在deque容器的中间insert或erase元素效率比
2016-08-25 12:44:26
1042
1
原创 【C++】STL常用容器总结之十:多重映射multimap和多重集合multiset
11、多重映射multimap和多重集合multiset由于multimap/multiset与map/set有太多的相似之处,故在这里我们一起进行介绍。首先需要指出的是,multimap的特性以及用法与map完全相同,唯一的差别在于它允许键值重复。同样,multiset的特性以及用法与set完全相同,唯一的差别在于它也允许键值重复。 Map和set容器中,一个键只能对应一个实例,而multima
2016-08-25 12:32:24
2329
原创 【C++】STL常用容器总结之九:集合set
10、集合setMap容器是键值对的集合,而set容器只是单纯的键的集合,当只想知道一个值是否存在时,使用set容器是最合适的。在set中,所有元素都会根据其键值被自动排序,同时set中不允许两个元素有相同的键值。1、set容器的一些操作Set容器支持大部分的map操作,主要包括以下几种操作:1、声明set对象set<T> s; // 创建一个名为s的空set,T是类型名。set<T> s(s2
2016-08-25 12:28:20
2337
原创 【C++】STL常用容器总结之八:映射map
9、映射mapMap是键-值对的集合,map中的所有元素都是pair,可以使用键作为下标来获取一个值。Map中所有元素都会根据元素的值自动被排序,同时拥有实值value和键值key,pair的第一元素被视为键值,第二元素被视为实值,同时map不允许两个元素有相同的键值。要使用map对象,必须包含map的头文件#include<map>。1、map的构造函数在定义map对象时,必须分别指明键和值的类型
2016-08-25 12:20:54
5120
2
原创 【C++】STL常用容器总结之七:对组pair与关联容器
8、对组pair在这部分,我们先介绍一下对组pair与关联容器,之后在介绍常用的几个具体的关联容器。1、关联容器关联容器是存储对象集合的类型,支持通过键的高效查询。关联容器的大部分行为与顺序容器相同,二者的本质区别在于关联容器通过键存储和读取元素,而顺序容器是通过元素在容器中的位置顺序存储和访问元素。 关联容器的每个元素包含一个键值(key)和一个实值(value)。当元素被插入到关联容器中时,容
2016-08-25 12:10:03
1803
原创 【C++】STL常用容器总结之六:基于deque的顺序容器适配器
7、基于deque的顺序容器适配器1. stack的基本概念Stack即栈,允许新增元素、移除元素、取得最顶端元素。但除了最顶端外,没有任何其他方法可以存取stack的其他元素,换言之,stack不允许随机访问。可以将stack看成是封闭了一端开口的deque。 将元素插入stack的操作称为push,将元素弹出stack的操作称为pop。Stack所有元素的进出都必须符合“后进先出”的条件,只有
2016-08-25 11:22:23
1218
原创 【C++】STL常用容器总结之五:双端队列deque
所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速。而在中间插入元素则会比较费时,因为必须移动中间其他的元素。双端队列是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候改变自身大小,完成了标准的C++数据结构中队列的所有功能。 Vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空
2016-08-25 11:05:53
13395
原创 【C++】STL常用容器总结之四:链表list
List是每个节点包含前驱指针、后继指针和数据域三个部分的双向链表。List不提供随机存取,访问元素需要按顺序走到需存取的元素,时间复杂度为O(n),在list的任何位置上执行插入或删除操作都非常迅速,只需在list内部调整一下指针。list不仅是一个双向链表,而且还是一个环状双向链表。所以它只需要一个指针,便可以完整实现整个链表。(这里需要特别强调一下:list到底是不是双向链表?有的书上说是,有
2016-08-25 10:34:40
8031
1
原创 【C++】STL常用容器总结之三:向量vector
4、向量vectorVector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。Vector的数据安排及操作方式与array非常相似,唯一的差别在于array是静态空间,一旦配置了就不能改变;vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。 使用vector之前,必须包含相应的头文件和命名空间:#include <vector>using std::v
2016-08-24 23:35:48
5013
2
原创 【C++】STL常用容器总结之二:顺序容器
3、顺序容器所谓序列式容器,其中的元素都可序(ordered),但未必有序(sorted)。array为C++语言内置的序列容器,STL另外提供vector、list、deque、stack、queue等等顺序式容器。它们的差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价。 标准库还提供了三种容器适配器(adapter),所谓适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口
2016-08-24 23:07:03
1204
1
原创 【C++】STL常用容器总结之一:容器与迭代器
声明: 1、本博文主要整理自《C++ Primer》和《STL源码剖析》这两本经典书籍。同时,也参考了网络中不少优秀博客,对这些博客的作者表示感谢。 2、由于博主能力有限,对于一些容器的用法可能尚未进行深入研究。因此,本博文若有错误和不足之处,欢迎大家批评指正。 3、本博文仅作学术交流只用,无任何其他用途。言归正传,下面开始介绍C++中的STL容器。1、容器的概念 Standard Temp
2016-08-24 22:46:00
9735
原创 【数据结构】数据结构中常用的树
声明:本文汇总了数据结构中一些常用的树,主要内容来自《数据结构(严蔚敏版)》和《算法导论》这两本教材。本文主要归纳出数据结构中常见的树的概念与简单的性质,并未给出具体的操作,如插入、删除、查找等。1、树的定义首先给出树的相关定义:树(tree)是包含n(n>0)个结点的有穷集,其中: 1)每个元素称为结点(node); 2)有一个特定的结点被称为根结点或树根(root); 3)除根结点之外的其
2016-07-31 21:29:17
21748
2
原创 【C++】const关键字用法总结
C++关键字const用法,总结了网络和C++ Primer的一些重要知识点,可能还有一些遗漏欢迎补充。CONST是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。一、CONST作用二、CONST的使用1、定义常量(1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修
2016-05-28 10:27:52
726
原创 【C++】static关键字用法总结
C++关键字static用法,总结了网络和C++ Primer的一些重要知识点,可能还有一些遗漏欢迎补充。C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为
2016-05-28 10:24:56
555
原创 【C++】C++常见面试题汇总,持续更新中...
1:指针(*)、引用(&)、解引用(*)、取地址(&)、的概念和区别概念:指针指向一块内存,指针保存的是内存的地址;引用是变量的别名,本质是引用该变量的地址。解引用是取指针指向的地址的内容,取地址是获得变量在内存中的地址。区别:(1)引用使用是无需解引用,指针需解引用。(2)引用不能为空,指针可以为空。(3)引用在定义时被初始化一次,之后不可变;
2016-03-23 13:53:56
11004
转载 【OpenCV】绘制图像的直方图
#include "stdafx.h"#include #include #include #include #include using namespace std;using namespace cv;void FillWhite(IplImage *pImage) { cvRectangle(pImage, cvPoint(0, 0), cvPoint(
2015-12-22 22:08:33
656
原创 【OpenCV】透视变换-将图像由不规则四边形转换成矩形
本文是在点击打开链接基础上修改而成的,感谢原文博主提供的参考。代码声明:近期在做身份证图像处理,由于采集问题,采集到的图像存在一定的角度偏差,成为了不规则的四边形,通过透视变换可将其转换成矩形,可以更好的进行分割。本文只提供相关函数和相关类。由于博主也是OpenCV新手,函数可能不那么完美,欢迎大家一起讨论。class CPerspective{ private: vecto
2015-12-11 17:51:49
12952
7
转载 【OpenCV】利用霍夫变换进行直线检测
1.最简单的霍夫变换是在图像中识别直线。在平面直角坐标系(x-y)中,一条直线可以用下式表示:y=kx+b。 这表示参数平面(k-b)中的一条直线。因此,图像中的一个点对应参数平面中的一条直线,图像中的一条直线对应参数平面中的一个点。对图像上所有的点作霍夫变换,最终所要检测的直线对应的一定是参数平面中直线相交最多的那个点。这样就在图像中检测出了直线。在实际应用中,直线通常采用参数...
2015-12-10 16:12:47
6539
转载 【C++】UTF-8字符和GB2312字符相互转换函数
//UTF-8到GB2312的转换char* U2G(const char* utf8){ int len = MultiByteToWideChar(CP_UT
2015-12-08 17:00:34
789
转载 【OpenCV】How to Use Tesseract with C++ or OpenCV
说明:在使用Tesseract 之前,一定要安装好Tesseract ,并在Project中配置好Tesseract 路径。1. Tesseract 在C++中直接使用// tess.cpp: // Recognize text on an image using Tesseract API and print it to the screen// Usage: ./tess image.
2015-12-07 16:29:31
2195
转载 【OpenCV】计算图像的水平和垂直积分投影
#include #include #pragma comment( lib, "cv.lib" ) #pragma comment( lib, "cxcore.lib" ) #pragma comment( lib, "highgui.lib" ) int main() { IplImage * src=cvLoadImage("lena.jpg"
2015-11-05 20:34:47
1737
转载 【OpenCV】角点检测
#include #include "cv.h"#include "highgui.h"#define MAX_CORNERS 100int main(void){int cornersCount=MAX_CORNERS;//得到的角点数目CvPoint2D32f corners[MAX_CORNERS];//输出角点集合IplImage *srcImage = 0,*gray
2015-11-05 20:28:56
540
原创 【OpenCV】基于轮廓的字符分割
vector mycvCharSegment(IplImage* image){ //此函数利用OpenCV中的cvFindContours找出字符的轮廓后进行字符分割,包括汉字的合并处理,但是要求二值化的图像轮廓清晰 vector characters; //存储分割出来的字符的图像头 IplImage* smoothImg = cvCreateImage(cvGetSize(i
2015-11-03 17:01:50
4043
数据结构经典的排序算法
2016-05-24
VS2010调用Tesseract-OCR需要使用的全部工具
2015-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人