- 博客(112)
- 收藏
- 关注
原创 【OpenCV学习】OpenCV中的工具函数
OpenCV库中还提供了一些专用功能,可以更好的处理计算机视觉中普遍出现的数学和其他问题。在库的环境中它们被称为工具函数。工具函数包含数学操作、测试、错误生成、内存与线程处理、优化及其他的工具。函数名称 描述 cv::alignPtr() 对齐指针到给定字节数 cv::alignSize() 将缓冲区大小给定的字节数对齐 cv::allocate() ...
2019-04-03 17:28:02 889
原创 【OpenCV学习】OpenCV中的辅助对象
在OpenCV中处理基本类型和大容器,还有一些列的辅助对象它们对控制各种各样的算法(比如终止条件)和各种在容器上的操作(比如ranges或者slices)非常有用1.cv::TermCriteria很多算法需要一个终止条件确定何时推出,通常的形式是要么达到允许的有限迭代次数(成为COUNT或者MAX_ITER),要么是一种形式的误差参数。cv::TermCriteria对象把一个或...
2019-04-03 16:57:01 606
原创 【OpenCV学习】OpenCV中的数据类型
OpenCV中的数据类型OpenCV有很多数据类型,它们都基于一些重要视觉概念的抽象而设计,来提供相对简单,直观的表示和处理。从组织结构的角度而言,OpenCV的基础数据类型主要分为三类第一类,直接从C++原语中继承的基础数据类型(如int和float),这些类型包括简单的数组和矩阵。第二类,辅助对象,这些对象代表更抽象的概念,比如垃圾收集指针,用于数据切片的范围对象(range ...
2019-04-01 16:45:07 1843 1
原创 【OpenCV学习】使用OpenCV打开摄像头并实现拍照功能
OpenCV中的HighGUI模块可以和摄像头中读取的实时数据流进行交互这种方法很接近使用cv::VideoCapture从硬盘读取视频的方式(在我的上上一篇博客中有相关代码)cv::VideoCapture对磁盘上的文件和摄像头是有一致接口的,对于前者,需要给一个读取文件名的路径,对于后者而言,需要给一个相机ID号,如果只有一个摄像头链接,则这个ID号通常为0,当ID值为-1时则代表任意...
2019-03-31 20:17:55 9024 9
原创 【OpenCV学习】OpenCV中对图像的简单变换
1.对图像的平滑处理代码如下:#include <opencv2/opencv.hpp>int main() { cv::Mat img = cv::imread("D://My Code/Test_OpenCV/test_2/test1.jpg"); cv::namedWindow("Example_1", cv::WINDOW_AUTOSIZE); cv::...
2019-03-31 16:42:44 385
原创 【OpenCV学习】使用OpenCV打开图片视频
一.使用代码打开一张图片代码如下:#include <opencv.hpp>int main() { cv::Mat img = cv::imread("D://My Code/Test_OpenCV/test_2/test1.jpg"); if (img.empty()) { return -1; } // 实现一个名称赋予窗口, 第二个参数,打开的新窗...
2019-03-31 15:18:31 3222 2
原创 【Java学习】Java集合框架
Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象 实现(类):是集合接口...
2019-01-24 10:52:34 264
原创 【Java学习】Java正则表达式
Java正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下表列出了一些正则表达式的实例及描述: 正则表达式 描述 this is text 匹配字符串 "...
2019-01-24 10:51:23 639
原创 【Java学习之Spring】Spring 学习笔记(四)
Spring的注入方式1.设值注入通过属性或者成员变量的set方法进行注入, 举个栗子,<property name="***" ref="***"/>,这种方式就是设值注入2.构造注入构造注入的方法是<constructor-arg name="***" ref="***"/>3.使用字段(Filed)方式注入(注解的方式)参考博客: Spring
2019-01-23 18:21:54 194
原创 【Java学习之Spring】Spring 学习笔记(三)
依赖注入依赖注入,就是在运行期将依赖关系注入到组件之中,即运行期间,由Spring根据配置文件,把其他对象的引用通过组件的setter方法进行设定Bean的实例化过程具体过程如下:ResourceLoader加载配置信息 由BeanDefinitionReader读取并解析<bean>标签,并将<bean>标签的属性都转换为BeanDefiniti...
2019-01-23 18:20:02 235
原创 【Java学习之Spring】Spring 学习笔记(二)
Spring常用注解什么是注解?注解就是元数据,即一种描述数据的数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。注解的用处 1、生成文档。这是最常见的,也是java 最早提供的注解。常用的有@param @return 等 2、跟踪...
2019-01-23 18:18:22 218
原创 【Java学习之Spring】Spring 学习笔记(一)
IOC思想Inversion of Control, 控制反转, 简称IOC,核心思想是:资源不由使用资源的双方进行管理,而由不适用资源的第三方进行管理好处是:1. 资源集中管理m,实现资源的可配置和易管理 2. 降低了使用资源双方的依赖程度即耦合度DI思想Dependency Injection, 依赖注入, 简称DI, 是组件之间依赖关系由容器在运...
2019-01-23 18:15:16 313
原创 【Java学习之Spring】Spring AOP学习笔记(三)
Adice类型的说明@Before 前置通知在某连接点(JoinPoint)——核心代码(类或者方法)之前执行的通知,但这个通知不能阻止连接点前的执行import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;@Aspectpublic class BeforeExam...
2019-01-23 18:13:42 314
原创 【Java学习之Spring】Spring AOP学习笔记(二)
Spring对AOP的支持Spring中AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC容器负责管理,故AOP代理可以直接使用容器中的其它bean实例作为目标,这种关系可由IOC容器的依赖注入提供。Spring创建代理的规则为:1、默认使用Java动态代理来创建AOP代理,这样就可以为任何接口实例创建代理了2、当需要代理的类不是代理接口的时候,Spring会...
2019-01-23 18:12:31 269
原创 【Java学习之Spring】Spring AOP学习笔记(一)
1.AOP总结AOP(Aspect Oriented Programming),面向切面编程,是OOP(面向对象编程)的一种补充和完善。OOP引入封装,继承和多态等概念来建立一种对象层次结构,模拟公共行为的一种集合。它允许开发者定义纵向的关系, 但是不适合定义横向的关系。举个例子,日志功能, 日志代码往往横向散步在所有对象层次中又跟对应的对象核心功能毫无关系,对于其他的代码如安全性,异...
2019-01-23 18:11:47 270
原创 【Java学习之MyBatis】初始MyBatis
MyBatis中XML文件配置properties, 引入了一个配置信息,这种属性是可外部配置且可动态替换的,既可以在Java文件中配置, 也可以通过properties元素的子元素传递 setting, 关于MyBatis的一些全局设置(以后使用的时候再理解?目前理解不了) typeAliases,类型别名,为 Java 类型设置一个短的名字,存在的意义仅在于用来减少类完全限定名的冗余。...
2019-01-23 18:09:53 192
原创 【Java学习之MyBatis】MyBatis中动态SQL
MyBatis中的动态SQL标签1.if这条语句提供了一个可选的文本查找类型的功能,举个栗子<if test="id != null "> ... </if>, 如果id不为空,才会执行中间的句子<select id="dynamicIfTest" parameterType="Blog" resultType="Blog">
2019-01-23 18:06:26 269
原创 关于迭代器一些题
string::iterator p; // 一个正常的迭代器, 可++, 可解引用string::const_iterator cp; // 可++, 不可解引用const string s("abcde"); // s对象为一个const对象, 不可修改 1. p = s.begin();错误, s对象是一个const修饰的string类对象, 所以s.be...
2018-10-10 20:54:06 378
原创 C++多态的纯文字介绍
多态通俗理解就是多种形态, 它是一种接口重用, 可以理解为同一个接口, 实现不同的方法C++中, 多态分为静态多态和动态多态静态多态的实现就是函数重载动态多态的实现是, 父类的指针或引用, 调用父类或子类的同一个接口, 即同名虚函数, 如果子类实现了虚函数重写, 就可以实现多态, 实质上就是调用子类或父类的同一个接口, 实现不同的方法, 指向谁调谁具体的实现是通过虚函数来实现的, ...
2018-10-07 23:38:30 254
原创 【剑指offer】翻转单词顺序列
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 解题思路:循环...
2018-09-02 16:24:57 209
原创 【剑指offer】和为S的连续整数序列和1+2+3+4+...+n
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数...
2018-09-02 16:20:26 450
转载 【Linux学习之网络编程】解析socket套接字相关函数
1.什么是套接字一个完整的网络通信需要一个五元组来标识:协议、本地地址、本地端口号、远端地址、远端端口号。TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字 流式套接字(SOCK_STREAM):TCP(The Transmission Control Protocol)协议。流式套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实...
2018-09-02 11:32:43 240
原创 【Linux学习之网络编程】socket套接字原理总结
什么是socket?应用层通过传输层传输数据时,TCP或UDP会遇到同时为多个应用进程提供并发的服务, 而多个TCP连接或多个应用程序进程使用同一个TCP协议端口.为了区别不同的连接和进程,许多计算机操作系统为了应用程序与TCP/IP协议交互提供了称为套接字(socket)的接口,所以,套接字是应用程序和TCP/UDP之间通信的门Socket描述了一个IP、端口对。它简化了程序员的操作...
2018-09-02 11:21:33 1066
原创 【剑指offer】丑数
原题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解题思路:一个丑数的因子只可能在2,3,5中,所以,一个丑数肯定由另一个丑数乘以2,3,5获得,从1开始乘得到2,3,5,再用这三个丑数乘2,3,5得到一个队列:3,6,,10,6,9,15,10,...
2018-08-30 21:09:25 293
原创 【Linux学习之系统编程】Linux多线程的同步机制
什么是线程同步?在多线程编程时,如果变量是只读的,多个线程读取变量时并不会有一致性问题,但是,当一个线程可以修改的变量,其他的线程也可以读或者修改的时候,我们就需要对线程就行同步,确保线程看到的数据必须一致,确保访问变量时不会出现无效的值Linux对线程提供了几种基本的同步机制一. 互斥量互斥量从本质上来说是一把锁,多线程编程时,在访问共享资源时对互斥量进行设置(即加锁),访问完成...
2018-08-26 23:43:54 1168
原创 【Linux学习之系统编程】Linux线程基础
一. 线程概念1.线程典型的UNIX进程可以看成只有一个控制线程:一个进程在某个时刻只能做一件事故,线程是一个进程内部的的控制序列2.进程和线程·进程是资源竞争的基本单位·线程是程序执行的最小单位·一个进程中的线程共享同一份资源,包括同一地址空间,文件买哦首付与表,每种信号的处理方式,当前工作目录,用户ID和组ID·线程也有自己数据:线程ID, 一组寄存器, 栈, ...
2018-08-26 16:41:03 274
原创 【算法基础】字符串的全排列算法
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。这道题是剑指offfer中一道经典的题,如果有n个元素,我们就能有n*(n - 1)个全排列,n为1时,只有一个全排列举...
2018-08-25 11:51:22 4659
原创 【C++基础】C++模板总结
一、模板模板是泛型编程的基础,分为模板函数和模板类泛型编程就是与类型无关的逻辑代码,是一种复用的方式。那么为什么要有泛型编程呢?C++是一门强类型的语言,无法像动态语言那样,可以写一段逻辑代码,把任意类型传进去。为了解决这个问题所以有了泛型编程,通过把通用的逻辑设计为模板,可以摆脱类型的限制,提供了继承机制以外的又一种抽象机制,提升了代码的复用性注意:模板不参与编译,是编译器根...
2018-06-21 17:54:09 914
原创 【Linux学习之系统编程】Linux中进程控制总结
进程控制有进程的创建,进程的等待,进程的程序替换,进程的终止等这些,我们在这篇博客里总结一下有关方面一、进程的创建在Linux学习时有关进程的总结中,我们用到了fork函数创建一个子进程,当时只是大致的写了写,这里再对fork函数总结,关于进程的博客总结:点击打开链接fork函数在linux中fork函数是非常重要的一个函数,它从当前进程中创建一个新进程,新进程是子进程,原进程为父进程包含它的头文...
2018-06-03 16:33:14 720
原创 【Linux学习之系统编程】Linux进程的地址空间
程序地址空间在学习C的时候,我们知道在32位系统下4G内存的分布,如图:接下来我们通过在Linux下写几段代码来对这个内存分布更加深入的研究写一个这样的代码:运行后,我们发现子进程和父进程的val都是0,因为子进程继承了父进程的所有东西,然后val的地址也是一样的如图,我们对代码进行修改:我们对子进程的val值进行更改,然后却发现变量val的值得地址在子进程和父进程中还是一样的我们知道,物理地址是...
2018-05-26 19:04:17 310
原创 【Linux学习之系统编程】Linux下的环境变量
环境变量环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,它是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息。Linux是一个多用户的操作系统,每个用户登录系统时都有一个专用的运行环境,通常情况下每个用户默认环境都是相同的,这个默认环境就是一组环境变量的定义。例如我们在编写c/c++代码时,在链接的时候我们并...
2018-05-26 15:44:07 578
原创 【Linux学习之系统编程】Linux进程的概念
进程是什么进程是操作系统对一个正在运行的程序的一种抽象,是计算机科学中最重要和最成功的的概念之一。进程是操作系统理论的核心与基础,操作系统中的许多概念都和进程有关。进程的定义有很多,这里只列举几种:·进程是一个独立的可调度的活动·进程是一个抽象实体,当它执行某个任务的时候,要分配和释放各种资源·进程是可以并行执行的计算单位·进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动·进程是一个...
2018-05-22 17:39:43 713
原创 【C++基础】C++多态原理和多态的对象模型
多态原理关于多态的相关概念我已经在上一篇博客中总结了,这里主要是更深入的去探索多态,上一篇的博客链接如下:多态相关概念我们已经知道多态是什么了,那么多态是如何实现的?我们写一段代码:class Base{public: Base() :a(1) {} virtual void func1() {} virtual void func2() {}private: int a;};...
2018-05-17 23:35:01 386
原创 【C++基础】C++多态相关概念
C++多态总结多态是面向对象编程领域的核心概念之一,那么什么是多态呢?多态一词最初来源于希腊语,意思是具有多种形式和多种形态的情形,在C++中是指同样的消息被不同的对象接受时导致不同的行为,这里的消息就是指对象的成员函数的调用,不同的行为指的是不同的实现。多态性可以简单的概括为“一个接口,多个方法”,程序在运行时才决定调用哪个函数。C++的多态是用虚函数来实现的,下面介绍一下虚函数:虚函数类的成员...
2018-05-16 16:54:55 1694
原创 【C++基础】C++继承总结
C++继承总结继承是什么?继承是面向对象复用的重要手段,通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西。通过继承联系在一起的类构成一种层次关系,通常在层次关系的根部有一个基类,其他类则直接或间接的从基类继承而来,这些继承得到的类称为派生类。基类负责定义在层次关系中所有类共同拥有的成员,而每个派生类定义各自特有的成员。继承的时候,派生类通过使用派生类列表明确指出它是从哪个基类继承而来。...
2018-05-08 23:53:44 487
原创 【C++基础】模拟实现String类的写时拷贝
在模拟String类时,我们既有深拷贝的方法,又有写时拷贝的方法,这篇博客就是好好总结一下写时拷贝技术什么是写时拷贝呢?写时拷贝技术(Copy On Write)是一个被使用在程序设计领域的最佳化策略,其基础的观念是,如果有多个呼叫者(callers)同时要求相同资源,他们会共同取得相同的指标指向相同的资源,直到某个呼叫者(caller)尝试修改资源时,系统才会真正复制一个副本(private c...
2018-04-26 11:56:08 575
原创 【C++基础】模拟实现string类
C++中string类是个管理字符串的类,而在面试中,如何模拟实现string类也是一个考点,我在这里简单的实现一下如何模拟实现一个string类模拟实现string类class String{public: //成员函数private: //成员变量 char* _str; size_t _size; size_t _capacity;};模拟实现string...
2018-04-24 23:43:19 1831 1
原创 【C++基础】深浅拷贝解析
在C++中,在用一个对象初始化另一个对象时,只复制了成员,并没有复制资源,使两个对象同时指向了同一资源的复制方式称为浅复制,也就是我们说的浅拷贝。浅拷贝通俗的理解,浅拷贝,只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。请看下面的代码://浅拷贝class String{public: St...
2018-04-24 20:33:38 333
原创 【C++基础】C/C++动态内存管理
C/C++中,有时候不能确定数组该定义为多大,这时候程序需要从系统中动态的获得内存空间,所谓动态内存分配,是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法,由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小与之相反的是静态内存分配,例如数组,在编译期间就已经分配好内存了C语言动态内存分配我已经总结过了,博客链接如下:C语言动态内存分配总结在这里主要总结C++新加入的动态内...
2018-04-03 15:40:56 252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人