- 博客(13)
- 收藏
- 关注
原创 Centos 7下安装OpenCV 3.4.12
1. 下载OpenCVOpenCV – 3.4.12下载解压后进入目录并创建build目录unzip opencv-3.4.12.zipcd opencv-3.4.12mkdir build2. 安装预编译环境sudo yum -y install epel-releasesudo yum -y install git gcc gcc-c++ cmake3sudo yum -y install gtk2-develsudo yum install -y libpng-devels
2020-12-21 16:17:05 608 1
原创 Linux下利用OpenCV的DNN模块做图像分类
1. 环境准备OpenCV 3.4.12g++ (要支持c++11)默认您已经安装OpenCV和g++,并且g++的版本要支持c++11,本文的系统环境是CentOS Linux release 7.9.2009 (Core)。2. 文件准备OpenCV的DNN模块支持Caffe,Darknet等多种深度学习框架。本文只讲如何用Caffe训练的模型来做图像分类,其它框架的读者可以自行探索。采用GoogLeNet训练的模型来做演示,如果有自己训练的模型,直接替换下面的三个文件即可。Goog
2020-12-21 11:57:43 584 3
原创 Windows下利用OpenCV的DNN模块做图像分类
1. 环境准备OpenCV 3.4.12Visual Studio 2015默认您已经安装OpenCV和Visual Studio 2015。如未安装,请您安装完毕之后继续阅读本文。2. 文件准备OpenCV的DNN模块支持Caffe,Darknet等多种深度学习框架。本文只讲如何用Caffe训练的模型来做图像分类,其它框架的读者可以自行探索。采用GoogLeNet训练的模型来做演示,如果有自己训练的模型,直接替换下面的三个文件即可。GoogLeNet模型文件 blvc_googlene
2020-12-18 16:32:12 449
转载 用GDB调试程序
本文转载于陈皓的用GDB调试程序系列,本文将陈皓一系列文章整合并重新编排了格式。 原文地址 : http://blog.csdn.net/haoel/article/details/2879 一、 GDB概述 : GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB
2017-06-27 11:09:19 501
原创 大整数乘法,字符串分离和单链表逆转
大整数乘法// 大整数乘法#include <iostream>#include <cstdlib>#include <cstring>#include <vector>const char* bigIntergerMulti(const char* str1, const char* str2);int main(){ char *str1 = "99"; char *s
2017-06-09 13:36:07 313
原创 用BlockBoundQueue和c++11实现多线程生产者消费者问题
最近在读到陈硕的《linux多线程服务端编程》这书时,发现了两个特别好用的模板类 : BlockQueue和BlockBoundQueue,用来实现多线程中的生产者消费者问题是特别方便的。但是其源码中用到boost库,所以在这里我稍微修改下,实现如下。这里只写出BlockBoundQueue,读者可自行写出BlockQueue// file : blockBoundQueue.h#ifndef Y
2017-05-14 16:37:13 1501
原创 和我一起学C++之list<三>
接着上一章开始说。我们知道对于一个数据结构来说,增删改查是最基本的操作。在上面的学习中,我们已经知道了怎样增改查了,所以下面我们来介绍下怎么删除一个节点1、删除list中的节点画图总是有助于我们分析的,所以直接上图看 与增加一个节点相反,我们只需要把待删除的节点的下一个节点的prev指针指向待删除节点的上一个节点,待删除节点的上一个节点的next指针指向待删除节点的下一个节点即可,然后再删除掉待删
2017-05-10 10:38:56 438
原创 与我一起学C++之list<二>
上一章我们讲解了list_node和 list_iterator,这一章我们主要来讲讲list 本身的实现。废话不说,直接看代码1、 构造函数和成员变量class list{public: list();private: list_node* head_; list_node* tail_; };list::list(){ head_ = new li
2017-05-09 17:08:00 218
原创 和我一起学C++之list<一>
list(链表)是一种非常重要的数据结构,在实际应用中到处可见,所以在笔试面试中都是考察的大热门。与vector类似,list也是线性结构,但不同的是list中的内存分布并不是连续的。同时std::list作为C++中的一种容器(container),相信用过的朋友不在少数,但是真正读过源码了解底层实现的可能并不多。原因大致有二,首先list作为一种工具,会用就行,你也大抵没见过使用电视的人需要会造
2017-05-09 11:59:30 672
原创 c/c++进阶之爱恨交织的临时对象:三、诡异的性质
在通过前两章的讲解之后,相信大部分读者都能写出比较优雅并高效的的程序了。但是,因为各家厂商编译器实现和语言本身的问题(c++语言本身就是让人又爱又恨的),我们在编写一些跨平台程序的时候,冷不防的就会踩坑趟累,苦不堪言。(不要问我为什么知道,因为我的眼角都是泪水)对于临时对象,我们还有以下三点要考虑:它是一个常量对象么?它被引用绑定么?当函数按引用传参时,实参为临时对象会怎么样?首先大家可以稍
2017-04-22 10:31:50 360
原创 c/c++进阶之爱恨交织的临时对象: 二、天使与魔鬼
c/c++语言最让人称道的便是性能了,在大气科学、地球物理等等需要高性能计算方面c/c++语言都是不二之选。甚至在分布式领域,由于ssd固态硬盘和万兆网络的兴起,当IO不再成为分布式系统的瓶颈,CPU重新成为瓶颈之后,c++在分布式领域也有重新抬头的趋势。但是我想问的是,你真的有这么了解C++的性能优势么?邪恶的魔鬼 : 隐藏在背后的性能杀手 把你的心血之作(包括你的程序之性能在内)当成垃圾抛出
2017-04-21 10:18:00 407
原创 c/c++进阶之爱恨交织的临时对象:一、出生和死亡
首先问一个问题,什么是c++中的临时对象呢? 有时候,在求表达式值期间,编译器必须创建临时对象(temporary object)。像其他任何对象一样,它们需要存储空间,并且必须能够构造和销毁。区别是从来看不到它们——编译器负责决定它们的去留以及它们存在的细节。(c++编程思想第一卷(第一版)183页)从上面一段话中,我们能够窥得临时对象的一些基本特征,那么它的定义又是怎样呢?C++中,我们说
2017-04-19 13:45:08 465
原创 浅说c/c++的sizeof
1、初识sizeof,sizeof的定义sizeof是c/c++中的一个操作符,用于返回一个对象或者类型所占用的内存字节数。sizeof返回值的类型为为size_t,一般在头文件中定义为 typedef unsigned int size_t。sizeof返回值的大小依赖于编译系统,下面我们要讨论的都是限定在32位编译系统下的。2、小试牛刀,sizeof的使用方法2.1 用于数据类型,如:
2017-04-18 13:42:40 677
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人