C++
Sunshine_in_Moon
对计算机视觉,深度学习方向很感兴趣,愿意和大家分享。现在学习大规模人脸识别,人脸检测等相关工作,希望得到大家的帮助!
展开
-
glog和gflags两个模块的使用实例
在Caffe中convert_imageset.cpp中有这两个模块的使用,我只是做了一点注释。我觉得学习别人的代码,是一个很好的方法。 算了废话不多说了,直接上代码吧!// This program converts a set of images to a lmdb/leveldb by storing them// as Datum proto buffers.// Usage://原创 2018-01-13 18:28:57 · 1456 阅读 · 0 评论 -
Caffe C++API 提取任意一张图片的特征系列二----MemoryData
本系列第一篇博客简单介绍了ImageData方法,由于该方法增加图片只能在网络配置文件里,灵活性欠佳。因此本篇博客继续上一篇,介绍一种更加灵活的方法,用MemoryData层输入数据,可以直接用opencv接口读入我们的图片再添加的网络中。 第一个问题:仍然是工程建立问题,提示卷积层或其他层没有注册,解决方法与上一篇博客一样。可查看:http://blog.csdn.net/sunshine原创 2015-12-01 10:36:57 · 5441 阅读 · 10 评论 -
C++ 对文件夹的操作
本篇博客转自:http://www.cnblogs.com/summerRQ/articles/2375749.html本篇博客主要是讲述C++中怎样遍历文件夹里的内容,包括文件下的子文件夹的内容。编写程序遍历文件夹及其子文件夹下所有文件,并输出到标准输出流或者文件流。1. 先考虑在单层目录下,遍历所有文件。以C:\WINDOWS为例:用到数据结构_find转载 2015-12-03 11:00:36 · 2935 阅读 · 0 评论 -
一个快速的人脸检测库
这是我见过和使用过的最快的人脸检测库,而且还能检测到人脸转动的角度。 在此声明!本博客旨在学习研究交流之用,如果要用于商业目的,请直接联系于诗琪老师,获得授权!如有法律问题,本人概不负责! 于诗琪老师网页连接:http://www.opencv.org.cn/forum.php?mod=viewthread&tid=34155 在于老师提供的代码里有一个例程,我只是对例程做了个原创 2015-12-02 10:10:24 · 8104 阅读 · 6 评论 -
Dlib机器学习库学习系列1----编译安装
最近在做人脸识别,其中用到了Dlib库中人脸检测和人脸对齐,因此写下这个系列博客,以备后用。 这篇主要是编译和安装,最终目的是编译出dilb.lib,这样就可以将该静态库添加到我们自己的工程,供我们使用。 步骤一:下载Dlib库 下载链接:http://dlib.net/ 可以看到网站上还提供了了C++与Python的例程。 步骤二:用CMake制作原创 2015-12-02 14:34:16 · 10262 阅读 · 6 评论 -
C++ 数字与字符串互转
本文转自:http://jingyan.baidu.com/article/48b558e35d29c47f38c09a1f.html数字转字符串: 用C++的streanstream: #include #Include string num2str(double i) { stringstream ss; ss转载 2015-12-01 16:02:30 · 938 阅读 · 0 评论 -
Caffe C++API 提取任意一张图片的特征系列一----ImageData
最近由于工作需要需要直接使用Caffe C++接口,查了很多资料后,问题终于解决。其中出现了很多问题,在这里和大家分享!今天首先介绍第一种方法用IamgeData!(这种方法相对简单)第一个问题:在VS2013中建立好工程后,运行时提示:卷积层没有注册!解决方法:把你的工程建立在happynear大神建立的buildVS2013工程中,因为要在工程属性中配置。右击工程->属性->通用属性->引用->原创 2015-12-01 10:11:36 · 6563 阅读 · 1 评论 -
sizeof函数总结
本文转自:http://blog.sina.com.cn/s/blog_5c717fa001012ml7.htmlsizeof函数功能:计算数据空间的字节数1.与strlen()比较strlen计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示(当然用在字符数组计算"\0"的大小)转载 2015-12-01 15:25:23 · 544 阅读 · 0 评论 -
memcpy函数的用法
本文转自:http://blog.csdn.net/cq20110310/article/details/7032107原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:转载 2015-11-23 15:38:54 · 615 阅读 · 0 评论 -
特征向量相似度和距离的计算
本文转自:http://www.cppblog.com/unixfy/archive/2012/02/13/165487.html1 /* 2 特征向量相似度和距离的计算 3 4 相似度: 5 ·夹角余弦 6 ·相关系数 7 ·Dice 8 ·Jaccard 9 10 距离 11 ·明氏距离 12 ·欧氏距离 13 ·马氏距离转载 2015-11-24 16:11:58 · 3617 阅读 · 0 评论 -
利用boost 编写自己的 --help
网上关于这方面的资料网上有很多,在这里给大家几个链接: http://blog.csdn.net/wangxvfeng101/article/details/11979487 http://blog.chinaunix.net/uid-10275706-id-3702543.html http://www.oschina.net/code/snippet_原创 2016-04-11 16:30:27 · 943 阅读 · 0 评论 -
Boost学习系列1----产生随机数
本文转自:http://blog.csdn.net/hellosijian/article/details/7459220一. 概念随机数被用在很多场合, 比如数值计算, 游戏, 加密, 测试.根据场合的不同, 需求的随机数发生器也不尽相同. 可以分为一下三种.non-deterministic random number generator pseudo-转载 2016-02-01 14:22:00 · 3923 阅读 · 0 评论 -
利用boost.python封装C++函数供python调用
今天需要在python里调用一个c++函数,因此各种查资料,发现boost.python库的使用还是很简单的。在这总结一下,以供大家参考。给大家几个链接,在这里提醒大家,很多资料由于时间久远,可能boost的版本比较低,较高版本的boost里的函数用法可能已经发生了变化,大家要注意,如果有什么问题,大家多多问问百度,谷歌。 第一篇博客的特点是,讲了简单的环境搭建。http:/原创 2016-04-11 19:33:22 · 6996 阅读 · 3 评论 -
Caffemodel之C++修改参数
对Caffemodel的解析,更直接的说是对protobuf的解析。对Protobuf来说最重要的有三个文件,***.proto,***.pb.h,和***.pb.cc。基本的操作流程是首先写***.proto文件,然后编译出***.pb.h和***.pb.cc两个文件,我们就可以对Protobuf进行读写和修改了。今天这里,我只想总结一下我在修改Caffemodel时遇到的一些坑,以及解原创 2017-12-09 15:29:31 · 1555 阅读 · 1 评论 -
VS下release版本调试设置(中英文版都有)
中文版转自:http://blog.csdn.net/huangxy10/article/details/7616633设置在Release模式下调试的方法:1.工程项目上右键 -> 属性2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -> 优化 -〉优化 选 禁止(/Od)4.连原创 2016-04-15 14:47:21 · 1640 阅读 · 0 评论 -
自己的程序出现0xc00007b怎么办?
相信,很多朋友和我一样,曾经遇到过如下的问题:在网上找了很多方法,但是这些方法主要针对运行游戏是如果出现这个问题的解决方法,但是如果你自己写的小程序也出现了这个问题怎么办呢?这真的曾经困扰了我很长时间,最近,在很偶然的情况下解决了这个问题。首先,如果你遇到这个问题,请检查你的程序是Debug还是Release,如果是Debug模式下,请改成Release试试,也许你会得到满意的结果。原创 2016-04-13 18:05:10 · 4646 阅读 · 0 评论 -
fstream对象作为函数参数的问题汇总及解决方法
今天想写一个多线程读取一个文本文件,需要fstream对象作为函数参数,出现了编译错误,查询了网上很多资料,在此汇总一下。 #include #include #include #include #include #include #include using namespace std;boost::mutex mt;void Print(fstream原创 2016-04-09 17:44:36 · 5119 阅读 · 0 评论 -
C++ 读写文件
本文转自:http://www.cnblogs.com/ifeiyun/articles/1573134.html http://www.cnitblog.com/wufajiaru/archive/2009/04/15/56390.aspx例外还有一个非常棒的博客:http://blog.csdn.net/kingstar158/article/details转载 2016-04-09 17:12:19 · 2676 阅读 · 0 评论 -
C++11(boost)中的原子操作(atomic operation)
本文转自:http://blog.csdn.net/yockie/article/details/8838686所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯一的线程对这个资源进行访问。这有点类似互斥对象对共享资源的访问的保护,但是原子操作转载 2016-04-09 16:12:52 · 2878 阅读 · 0 评论 -
移植自己的.exe文件到别的文件夹,或其他计算机
在此先声明,移植到其他计算机我并没有尝试,但是应该不会有很大问题,其实移植到其他计算机出现的最多问题就是找不动态库(dll),解决方法有两个:第一个,将需要的动态库和.exe文件放在一起就OK了。很多人会说,我怎么知道需要哪些动态库,其实只要你双击.exe文件,如果缺少动态库,会有提示的,我们只要根据提示,自己找到动态库,并复制到.exe所在文件夹即可。 第二个,就是把需要动原创 2016-04-12 19:06:16 · 2168 阅读 · 0 评论 -
boost C++中嵌入python
昨天总结了利用boost.python在python中调用C++函数http://blog.csdn.net/sunshine_in_moon/article/details/51124114。今天总结一下在C++中嵌入python的各种坑。 和上篇博客一样,先给大家一些博客连接,是我查找的资料: 第一篇,特点讲述里C++中调用python的两种方法,我主要是参照第原创 2016-04-12 11:50:08 · 2474 阅读 · 0 评论 -
vs2010下release版本调试设置
本文转自:http://blog.csdn.net/huangxy10/article/details/7616633/设置在Release模式下调试的方法:1.工程项目上右键 -> 属性2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -> 优化 -〉优化 选 禁止(/Od)4.连转载 2015-10-30 14:09:28 · 665 阅读 · 0 评论 -
error C4703: 使用了可能未初始化的本地指针变量“db”
在编译caffe的Windows版本时,遇到一个奇怪的问题提示:error C4703: 使用了可能未初始化的本地指针变量“db”网上查阅资料后找到了相应的解决方法。可参考:http://www.vcerror.com/?p=1514问题产生的原因:在VS2012创建项目时,会有一个勾选项,叫做“安全开发生命周期(SDL)检查”,这个东西是微软在VS2012新推出的东西,为原创 2015-11-05 13:41:17 · 5102 阅读 · 0 评论 -
stringstream类用法
本文转自:http://blog.csdn.net/nwpu_yike/article/details/22100615C++ stringstream 类的用法功能一:预定的格式将程序中的数据保存在一个string 中C++ stringstream 类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据的时候。要想在程转载 2015-05-13 20:31:54 · 658 阅读 · 0 评论 -
函数重载与虚函数的区别
函数重载和虚函数在概念和使用方式方面的区别1.函数重载可以用于非成员函数和类的成员函数,而虚函数只能用于类的成员函数2.函数重载可用于构造函数,而虚函数不能用于构造函数3.如果对成员函数进行重载,重载的函数与被重载的函数应该是用一个类中的成员函数,不能分属于两个不同继承层次的类,函数重载处理的是横向的重载。虚函数是对同一类族中的基类和派生类的同名函数的处理,即允许在派生类中对基类的成员函数重新定义。转载 2015-05-13 19:13:22 · 5105 阅读 · 0 评论 -
函数中的函数可行吗?
今天由遇到个小白事件(看来C++要补补)。在编写一段简单代码时,我在main()函数里定义了一个void huidiao()函数,但是提示错误(大括号不匹配,应输入;)。当时感觉很奇怪,不知道哪里出现错误。后来尝试把这个函数定义在主函数之外,OK了。百思不得其解。在网上查阅后才知道,主函数内不能再定义自定义函数,只能声明,在主函数外部定义。但是,有内嵌函数的概念(C不支持),就是在自定义函数里再定义原创 2015-05-05 16:08:57 · 623 阅读 · 0 评论 -
“未声明的标识符:SurfFeatureDetector”问题解决办法
本文转自:http://blog.csdn.net/rourou23/article/details/44217917在VS中使用opencv2.4.X版本的时候,如果使用SurfFeatureDetector(或者SiftFeatureDetector)做特征点检测的时候,按照官方文档上的示例代码include头文件为:opencv2/features2d/features2d.hp转载 2015-05-01 17:03:37 · 1401 阅读 · 0 评论 -
回调函数简介
一,回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢? 使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址(函数指针)作为参数传递给那个函数。 而那个原创 2015-05-04 17:22:02 · 586 阅读 · 0 评论 -
容器中clear()和erase()的区别
1、vector::clear()函数的作用是清空容器中的内容,但如果是指针对象的话,并不能清空其内容,必须要像以下方法一样才能达到清空指针对象的内容:[cpp] view plaincopyprint?vectorint*> xx; for(int it=0;it!=xx.size();++it) { delete xx[it]; } x原创 2015-05-03 11:05:04 · 8987 阅读 · 0 评论 -
cornerHarris源码详细分析
本文转自:http://blog.csdn.net/zd19901117/article/details/450243131. cornerHarris函数分析#include #include #include #include using namespace std;using namespace cv;int main( void ){ //re转载 2015-04-30 21:11:50 · 3079 阅读 · 0 评论 -
std::nth_elelment排序
本文转自:http://blog.csdn.net/readzw/article/details/8746108[cpp] view plaincopyprint?templateclass _RanIt, class _Pr> inline void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _La转载 2015-05-02 21:02:10 · 530 阅读 · 0 评论 -
迭代器简介
迭代器简介 除了使用下标来访问 vector 对象的元素外,标准库还提供了另一种访问元素的方法:使用迭代器(iterator )。迭代器是一种检查容器内元素并遍历元素的数据类型。标准库为每一种标准容器(包括 vector )定义了一种迭代器类型。迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。因为迭代器对所有的容器都适用,现代 C+转载 2015-04-14 17:07:46 · 529 阅读 · 0 评论 -
输出格式控制setfill和setw使用
本文转自:http://blog.csdn.net/cjc211322/article/details/25463621注意问题:所使用的头文件为iomanip.h例如:cout则在屏幕显示s a //s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超过setw()设置转载 2015-05-13 20:42:23 · 7361 阅读 · 0 评论 -
容器的相关操作
本文转自:http://blog.csdn.net/sinat_24229853/article/details/43836037http://blog.csdn.net/sinat_24229853/article/details/43836261http://blog.csdn.net/sinat_24229853/article/details/43836351http:转载 2015-05-17 22:18:16 · 638 阅读 · 0 评论 -
Cmake使用教程
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test转载 2015-09-01 14:58:59 · 946 阅读 · 0 评论 -
sprintf函数的说明
本文转自:http://blog.sina.com.cn/s/blog_980cf62a0100ya0z.htmlsprintf字串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况转载 2015-08-06 13:49:18 · 648 阅读 · 0 评论 -
BOOST_TYPEOF和BOOST_AUTO 作用
本文转自:http://blog.csdn.net/yockie/article/details/8859916头文件里定义了两个宏:BOOST_TYPEOF和BOOST_AUTO,分别用于仿真C++新标准的typeof和auto关键字,可以在编译期自动推导表达式的类型。它们不仅能够推导C++语言内建的int、double、数组、函数指针等等类型,也支持标准库中的容器类型,使程序员再也转载 2015-08-13 14:11:01 · 782 阅读 · 0 评论 -
floor函数与ceil函数
以下内容来自百度百科。floor(x),有时候也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接取按照数轴上最接近要求的值左边的值,也就是不大于要求的值的最大的那个)。函数名: ceil用 法: double ceil(double x);功 能: 返回大于或者等于指定表达式的最小整数头文件:mat转载 2015-06-30 16:20:25 · 2661 阅读 · 0 评论 -
atoi、atof、itoa、itow函数简介
本文转自:http://blog.sina.com.cn/s/blog_53a732bb0100ws2v.htmlatoi、atof、itoa、itow函数是windows平台下实现字符串与数值相互转换的函数。Linux平台下请使用标准库中的sprintf与sscanf函数。 atoi函数原型:int atoi( const char *string );ASCII t转载 2015-06-25 21:37:14 · 2444 阅读 · 0 评论 -
C++文件操作详解(ifstream、ofstream、fstream)
本文转自: http://www.cnblogs.com/azraelly/archive/2012/04/14/2446914.htmlC++文件操作详解(ifstream、ofstream、fstream) C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)转载 2015-06-25 21:14:57 · 3684 阅读 · 0 评论