自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

疯子小鱼

坚持到无能为力 拼搏到感动自己

  • 博客(81)
  • 收藏
  • 关注

原创 机器视觉开源库学习

(1)车牌识别开源库简介:EasyPR是一个开源的中文车牌识别系统,其目标是成为一个简单、高效、准确的车牌识别库。相比于其他的车牌识别系统,EasyPR有如下特点:它基于openCV这个开源库。这意味着你可以获取全部源代码,并且移植到opencv支持的所有平台。它能够识别中文。例如车牌为苏EUK722的图片,它可以准确地输出std:string类型的"苏EUK722"的结果。它的识别率较高。图片清晰情况下,车牌检测与字符识别可以达到80%以上的精度。(2)二维码和条码识别开源库简介:ZXing是开源,

2017-04-17 20:04:06 381

原创 牛人博客——站在牛人的肩膀上

学习牛人方法,一步一个脚印

2017-04-08 11:37:33 401

原创 python selenium操作浏览器窗口切换

说明:打开新的窗口,然后从多个窗口中定位到新的窗口方法一:# 获取打开的多个窗口句柄' windows = driver.window_handles '# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1]) 方法二:判断窗口句柄# 获得打开的第一个窗口句柄window_1 = driver.current_window_h

2018-04-23 21:09:42 1678

原创 python selenium中浏览器操作

1.关闭浏览器全部标签页driver.quit()2.关闭当前标签页(从标签页A打开新的标签页B,关闭标签页A)driver.close()3.关闭当前标签页(从标签页A打开新的标签页B,关闭标签页B)可利用浏览器自带的快捷方式对打开的标签进行关闭Firefox自身的快捷键分别为:Ctrl+t 新建tabCtrl+w 关闭tab

2018-04-23 15:09:24 999

原创 python爬虫 Selenium元素定位方法

1.定位页面中一个元素:find_element_by_idfind_element_by_namefind_element_by_xpath(常用)find_element_by_link_textfind_element_by_partial_link_textfind_element_by_tag_namefind_element_by_class_namefind_element_

2018-04-23 14:57:48 629

原创 python+selenium+webdriver+chromedriver

今天用到selenimu中的webdriver,在安装外selenium后,输入以下程序出现错误:"'chromedriver' executable needs to be in PATH":from selenium import webdriverchromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedr...

2018-04-03 11:08:14 2452

原创 正则

<div class="article-intro" id="content"> <h1>Python 正则表达式</h1><p>正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。</p><p>Python 自1.5版本起增加了re 模块,它提供 Perl

2018-04-02 11:23:52 231

原创 python中正则表达式

正则表达式匹配流程:正则表达式文本compile后得到正则表达式对象,在正则表达式对象中定义了不同的操作提供方法,如模式匹配搜索或字符串替换。下图展示了使用正则表达式进行匹配的流程: 1.  pat_details = re.compile(r'"editorsComments":"(.*?)",', re.MULTILINE | re.DOTALL) script_det...

2018-04-02 11:16:21 172

原创 python爬取网页—网站编码

在爬取网站之前需要查看网页的编码方式,对应的,通过查看网页源代码,在网站页面配合按键F12 ctrl+F 搜索"charset"可找到如下类似信息:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">...网页抓取,要查看编码格式,发现是gbk格式的,抓取时候,你的python系统是不认识,你的subl...

2018-03-30 11:26:01 604

原创 python-json字符串至字典

json转化import jsondic='{"name":"zhangsan","age": 23,"id":201811110,"url":"http://internal-mrp.salad.net-a-porter.com{business}"}'s_json=json.loads(dic)print(s_json)print(s_json['url'])输出结果:{'ur

2018-03-30 10:32:24 263

转载 JVM内存分配模型

JVM 内存分配模型概念--在工作中可能用到的机会不多,有个概念的了解--此文是转载某位读者,应该是在阅读了《深入理解Java虚拟机JVM高级特性与最佳实践》一书后,总结所得。写的不错,转载哈一、JVM内存区域划分大多数 JVM 将内存区域划分为 Method Area(Non-Heap),Heap,Program Counter Register, Java Me

2017-11-14 09:06:20 250

原创 静态编译,动态编译,静态链接库,动态链接库

1.定义 LIB文件中包含函数代码本身,在编译时直接将代码加入程序当中。称为静态链接库static link library。 LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。 静态链接库包括两个文件: (1).h头文件,包含静态链接库中说明输出的类或符号原型或数据结构

2017-10-12 17:04:17 1176

转载 数据库中“数据冗余”

数据冗余1.关系数据库的数据冗余形成的原因:表的重复、属性的重复、元组的重复、属性值的重复。有的数据冗余用于数据间建立联系、数据安全或为了数据使用的便利,是必需的数据冗余,而其余的数据冗余为非必需的数据冗余应尽量予以消除。按属性值域集合基的特点将其分为有限类和无限类。无限类属性值偶尔重复不是数据冗余,有限类属性值的重复由一对多或多对多的关系所致,可相机处理之。关系数据库中的数据冗余

2017-10-10 10:10:35 18880

原创 C++中的string类

C++中的string类相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使

2017-10-09 17:14:25 224

原创 RAW图像数据到RGB

RAW图像数据到RGBBayer是相机内部的原始图片, 一般后缀名为.raw. 很多软件都可以查看, 比如PS.我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片, 都是从.raw格式转化过来的. .raw格式内部的存储方式有多种, 但不管如何, 都是前两行的排列不同. 其格式可能如下:G R G R G R G RB G B G B G

2017-10-08 20:31:32 29382 4

原创 图像插值算法

常用的插值方法                                                                                                                                                        1、最邻近元法  这是最简单的一种插值方法,不需要计算,在待求

2017-09-29 21:38:43 871

原创 死锁实例及避免策略

在多线程编程中,除了要解决数据访问的同步与互斥之外,还需要解决的重要问题就是多线程的死锁问题。所谓死锁: 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外部处理作用,它们都将无限等待下去。一、死锁原因与形成条件  死锁形成的原因:系统资源不足进程(线程)推进的顺序不恰当;资源分配不当  死锁形成的条件:互斥条件:所谓

2017-09-25 17:22:11 1023

原创 临界区和互斥量

有一次面试的被问到 临界区和互斥量的区别:1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。2、临界区是非内核对象,只在用户态进行锁操作,速度快;互斥体是内核对象,在核心态进行锁操作,速度慢。3、临界区和互斥体在Windows平台都下可用;Linux下只有互斥体可用。1、临界区:通过对多线程的串行化来访问公共资源或一段代码,

2017-09-25 13:34:46 503

转载 设计模式之六大原则(转载)

设计模式之六大原则(转载)设计模式之六大原则(转载)  关于设计模式的六大设计原则的资料网上很多,但是很多地方解释地都太过于笼统化,我也找了很多资料来看,发现CSDN上有几篇关于设计模式的六大原则讲述的比较通俗易懂,因此转载过来。  原作者博客链接:http://blog.csdn.net/LoveLion/article/category/

2017-09-21 10:23:57 169

原创 面向对象设计原则—高内聚、低耦合。多聚合、少继承

面向对象设计原则—高内聚、低耦合。多聚合、少继承:高内聚是模块功能的专一性高,独立性强.低耦合是模块之间的联系尽量少,尽量简单.这句话描述模块设计的两个方面,不矛盾.面向对象的基本原则:多聚合,少继承。低耦合,高内聚.【高内聚、低耦合】    内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。    耦合:模块与模块之间接口的复杂程度,

2017-09-21 10:11:26 1332

原创 重载 覆盖 隐藏

1.重载是一个类内部实现相同机理的操作,但是操作的对象不同。主要体现在: 方法在同一个类中重载的方法名称相同参数不同(参数的类型不同,参数的个数不同)virtual关键字可有可无2.覆盖,就是面向对象中的多态,是子类的方法覆盖了基类的方法,以实现不同的功能,或者对父类的功能进行扩充。主要体现在:派生类函数覆盖基类函数不同的范围(分别位于派生类和基类中)函

2017-09-20 10:33:58 254

原创 运算符重载 前缀++ 后缀++

运算符重载:         运算符与类结合,产生新的含义。 为什么要引入运算符重载?         作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 .  和 .* 和 ?: 和 ::  和 sizeof友元函数和成员函数的使用场合:一般情况下,建议一元运算符

2017-09-20 09:55:45 6141

转载 c++11新特性

转载于:http://www.cnblogs.com/George1994/p/6684989.htmlC++11 新特性总结前言转载请注明出处,感谢!C++11 的新特性1 变量和基本类型1.1 long long 类型扩展精度浮点数,10位有效数字1.2 列表初始化初始化的几种不同形式,其中用花括号来初始化变量称为列表初始化;比如:

2017-09-19 22:18:42 275

转载 std::bind与std::function

转载链接:http://www.cnblogs.com/slysky/p/3822640.htmlc++11特性与cocos2d-x 3.0之std::bind与std::function昨天同事让帮忙写一小功能,才发现cocos2d-x 3.0 和 cocos2d-x 3.0rc0 差别还是相当大的。发现Label这一个控件,3.0就比rc0版本多了一个创建函数,更为关键的是3.

2017-09-19 22:03:04 400

原创 构造函数调用顺序

构造函数调用顺序: class B1 { public: B1(int i){cout<<"constructing B1"<<i<<endl;} }; class B2 { public: B2(int j){cout<<"constructing B2"<<j<<endl;} }; class B3 { public: B3(){cout<

2017-09-19 14:46:23 3863

原创 一个空类

定义一个空的C++类,例如[cpp] view plain copyprint?class Empty  {  }  class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于[cpp] view

2017-09-19 14:28:41 536

原创 关于静态成员函数

关于静态成员函数        静态成员是受到private限定符的作用的,若用private修改,不可外部访问的  static对象如果出现在类中,那么该对象即使从未被使用到,它也会被构造以及析构。而函数中的static对象,如果该函数从未被调用,这个对象也就绝不会诞生,但是在函数每次被调用时检查对象是否需要诞生。下面详细说说static的功能以及它的来龙去脉:stati

2017-09-19 14:02:55 7926 1

原创 gcc g++区别与联系

编译阶段是相同的,链接阶段g++默认链接c++库,gcc没有。所以一般情况下用gcc编译c文件,用g++编译cpp文件。但是也可以用gcc编译cpp文件,但后面需要加一个选项-lstdc++,作用是链接c++库还可以用g++编译c文件一般而言,在Linux下编译程序分为以下4个阶段:预处理:编译处理宏定义等宏命令(eg:#define)——生成后缀为“.i”的文件

2017-09-17 21:55:36 453 1

原创 函数重载:仅根据函数返回值类型不能实现重载

函数的两个要素:参数与返回值。如果同名函数的参数不同(包括类型、顺序不同),那么容易区别出它们是不同的函数。如果同名函数仅仅是返回值类型不同,有时可以区分,有时却不能。例如:void Function(void);int Function (void);上述两个函数,第一个没有返回值,第二个的返回值是int 类型。如果这样调用函数:int x = Funct

2017-09-13 16:11:25 5459 1

转载 STL 中map中find和map[]

转自:http://blog.csdn.net/qqwx_1986/article/details/4970574std::map不是顺序容器,这应该都知道的,map中重载了operator []操作符,可以用map的键值索引到相关的数据,但是这个[]和一般数组的[]可不一样。有的人又认为既然[]就是利用下标做索引和std::map中的find用键值索引是不是一样的,所以有的会写出下面类似的代

2017-09-11 19:31:08 4182

转载 虚表指针初始化

转自:http://blog.csdn.net/lingfengtengfei/article/details/123458091.虚函数·虚表是怎么实现的?虚表存放在哪里?·虚表中的数据是在什么时候确定的?·对象中的虚表指针又在什么时候赋值的?我们很难通过 C++语言本身来找到答案。 C++标准给编译器实现者定义了语法规范,但是被并没有定义如何实现这些

2017-09-11 19:16:51 2887 1

原创 shared_ptr原理分析及实现

原理分析内存管理历来是C++编程的一项需要小心费力气的活,因为C++本身不带GC机制,所有的内存管理都需要我们手动实现,从malloc / free 到new / delete,再到allocator的出现,无非都是为了更合理简单的避免内存泄露。指针本身是一个用法十分灵活并且功能强大的工具,然而它对内存的直接掌控也使得它不得不常常背起内存泄露的黑锅,因为忘记删除指针或者将一个指针删除两次的

2017-09-11 14:09:19 8772 2

转载 shared_ptr智能指针源码剖析

2017-09-11 14:07:07 298

转载 GDB调试基本命令

用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更

2017-09-11 10:59:29 251

原创 父子进程之间的关系

摘要:本文详解介绍fork()函数的基本使用,以及父子进程之间的关系.子进程对变量的改变不会影响到父进程、子进程对父进程文件流缓冲区的处理和子进程对父进程打开的文件描述符的处理.创建进程1.fork()函数函数定义:    #include     pid_t fork(void);返回值:如果返回值大于零,表明处于父进程上下文环境中,返回值是子进程的ID.如果返回值是零,

2017-09-11 10:36:21 3445

原创 const与constexpr

关键字 constexpr 于 C++11 中引入并于 C++14 中得到改善。它表示常数表达式。与 const 相同,它可应用于变量,因此如果任何代码试图修改该值,均将引发编译器错误。与const 不同,constexpr 也可应用于函数和类构造函数。 constexpr 指示值或返回值是常数,并且如果可能,将在编译时计算值或返回值。1constexpr 变量const 和 co

2017-09-11 09:50:37 394

原创 C++ 11 override final

类被final修饰,不能被继承[cpp] view plain copyprint?class A1 final { };  class B1 : A1 { }; // “B1”: 无法从“A1”继承,因为它已被声明为“final”  class A1 final { };class B1 : A1 { }; // “B1”: 无法从“A1

2017-09-10 21:30:06 328

原创 智能指针 auto_ptr, unque_ptr, shared_ptr, weak_ptr

参考:http://www.jellythink.com/archives/684http://www.cnblogs.com/lanxuezaipiao/p/4132096.html1、什么是智能指针?C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引

2017-09-05 17:28:06 428

原创 Vector的简单实现

借鉴《数据结构和算法分析c++描述》中:template class Vector{ public: explicit Vector( int initSize = 0 ) : theSize( initSize ), theCapacity( initSize + SPARE_CAPACITY ) { objects = new Object[ the

2017-09-05 09:05:35 214

原创 颜色空间

一、人类视觉与色度学基础三原色原理、光度学基本知识:人类色觉的产生是一个复杂的过程。除了光源对眼睛的刺激,还需要人脑对光刺激的解释。人感受到的物体颜色主要取决于反射光的特性。如果物体比较均衡地反射各种光谱,则看起来是白的。如果物体对某些光谱反射得较多,则看起来物体就呈现相对应的颜色。色度学(colorimetry):进行图像的彩色分析,建立的研究彩色计量的学科。视觉系统

2017-08-30 15:46:37 2104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除