333333333 js 冒泡排序 var arr=[17,19,5,90,3];window.onload=function(){// alert(arr[0]);var len=arr.length;// alert(len);for(var i=0;i<len;i++){for(j=i+1;j<len;j++){if(arr[i]>arr[j]){var temp=arr[i];arr[i]=arr[j]; arr[j]=temp ;}}}document.write(arr[i]…
OpenCV 学习笔记(模板匹配) 模板匹配是在一幅图像中寻找一个特定目标的方法之一.这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否"相似",当相似度足够高时,就认为找到了我们的目标. 在 OpenCV 中,提供了相应的函数完成这个操作. matchTemplate 函数:在模板和输入图像之间寻找匹配,获得匹配结果图像 minMaxLoc 函数:在给定的矩阵中寻找最大和最小值,并给出它们的位置 在具体介绍这两个函数之前呢,我们还要介绍一个概念,就是如何来评价两…
TensorFlow - 深度学习破解验证码 简介:验证码主要用于防刷,传统的验证码识别算法一般需要把验证码分割为单个字符,然后逐个识别,如果字符之间相互重叠,传统的算法就然并卵了,本文采用cnn对验证码进行整体识别. 主要涉及: 1.captcha库生成验证码 2.如何将验证码识别问题转化为分类问题 3.可以训练自己的验证码识别模型 一.安装 captcha 库 sudo pip install captcha 生成验证码训练数据 所有的模型训练,数据是王道,本文采用 captcha 库生成验…
第二十三章:使用数据库 MySQL数据库 MySQL客户端界面 mysql命令行参数 参数 描述 -A 禁用自动重新生成哈希表 -b 禁用 出错后的beep声 -B 不使用历史文件 -C 压缩客户端和服务器之间发送的所有消息 -D 指定要用的数据库 -e 执行指定语句并退出 -E 竖直方向显示查询输出,每行一个数据字段 -f 如果有SQL错误产生,继续执行 -G 使能命名命令的使用 -h 指定MySQL服务器主机名(默认为localhost) -H 用HTML代码显示查询输出 -i 忽略函数名后…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换在数学理论,以及如何遍历基于树结构的网格层级: 理解顶点混合的想法以及数学理论: 学习如何从文件加载动画数据: 学习如何在D3D中实现角色动画. 1 框架的层级结构 1.1 数学公式 例如,有下面的结构: 每根子骨骼的坐标系都可以跟父骨骼关联,第一根骨骼与世界坐标系关联: 如果矩阵A0是第一根骨骼的…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十三章:计算着色器(The Compute Shader) 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes GPU已经被优化为处理单个地址或者连续地址(流操作)的大量内存数据:这和CPU的随机内存访问形成鲜明对比.因为顶点和像素可以独立处理,所以GPU被架构为大量的并行运算:比如NVIDIA…
在实现网络爬虫的过程中,验证码的出现总是会阻碍爬虫的工作.本期介绍一种利用深度神经网络来实现的端到端的验证码识别方法.通过本方法,可以在不切割图片.不做模板匹配的情况下实现精度超过90%的识别结果. 本文分为两个部分,第一个部分介绍如何利用深度神经网络实现验证码的训练和识别,第二个部分介绍在实现过程中需要克服的工程问题. 一. 基于深度神经网络的验证码识别 验证码的识别是从图片到文字的过程.传统的算法如OCR正是为了解决此类问题而设计的.然而,在真实情形中,验证码通常并不以规则的文字出现,即文字…
1.登录平台 阿里大于2.登陆之后我们可以看到资费,使用场景等,在进入正题之前我们需要一些准备工作,首先我们先了解下短信的请求参数,在这里我们需要注意的是sms_param这个参数,在接下来我们申请短信模板的时候会用到3.相应参数,对待返回值我们记住最基本的true or false 即可4.了解完公共参数,接下来我们进入正题,首先我们得配置短信签名和配置短信模板,短信签名出现在短信开头,注意短信模板,这里将用到上文提示的sms_param参数5.同时,在其网站上下载好SDK,下图展示的是我的存…
在做微信开发的时候原本使用来yii框架,后续觉得yii虽然功能强大使用方便,但是整个框架太大了,不适合一些轻量级的开发:这个时候发现thinkphp这个框架,框架本身很小,只有几M,但麻雀虽小,但五脏俱全:目前有需要用到的功能think都支持,而且后者也支持自动生成代码,相比yii更灵活,而且这个东东还是国产的,各种api文档都有中文的,这对与楼主这种英语很菜的代码狗来说也算是一种福利. 扯了这么多,直接上一碗代码,让大家尝尝thinkphp的味道喽.... 一.下载基本框架 官网地址:http…
首先, 在本地服务器中新建项目APP,依据第一讲中的步骤配置好thinkphp,这里为了测试方便,不分前台和后台模块,统一把模块路径设为'./APP/'. 1.新建数据库myapp,以及数据库表think_form: 2.在配置文件APP/Conf/config.php中写入: <?php return array( //'配置项'=>'配置值' 'DB_TYPE'   => 'mysql', // 数据库类型 'DB_HOST'   => '127.0.0.1', // 服务器地…
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 今天我们来介绍下有关haproxy匹配手机的一些规则配置. 一.业务需要 现在根据业务的实际需要,有以下几种不同的需求.如下: 1.1 转发所有手机请求 所有通过手机端访问http.ilanni.com域名的话,全部转发到http://www.ilanni.com这个地址,而PC端不受此限制. 1.2 根据url进行转发 如果手机端请求http.ilanni.com这个域名的url中…
1.在本地服务器根目录下创建项目目录,如命名为app: 2.把thinkphp的压缩包解压到与项目同级目录下,如app是放在目录APP下面,即项目目录路径为'APP/app/',则thinkphp应解压到APP目录下,目录路径为'APP/ThinkPHP'.在这里我们把app项目直接放在根目录下而不是APP目录下: 3.在app文件夹中创建文件index.php,并在里面写入内容: <?php /*定义项目名称和路径*/ define('APP_NAME','app'); define('APP…
今天想学下一下验证码的生成,就之前搭建好的一个spring框架上写了一个demo,我会贴出细节代码,但是spring的配置就不在介绍了.需要完整代码可以联系我! 会从前台页面到后台实现完整的讲解: 1:前台的代码,image.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE ht…
在很多App中都有输入验证码的功能需求,最近项目需要也有这个功能.做完之后简单整理了一下,将实现的基本思路做下记录.实现后的效果大致如下图所示,当四位签到码全部输入时,提交按钮是可以提交的,否则提交按钮失效,不允许提交. 1 整体布局 上图整个界面的布局很简单,就不多说了,重点就是中间这一块的验证码输入功能,我把它单独封装拿出来封装在一个自定义View(KLCodeResignView)里了,下图是KLCodeResignView布局的层次结构. 验证码输入视图(KLCodeResignView…
mysql模糊匹配查询like,regexp,in   摘要 内容比较简单,无摘要.   关键词 模糊查询  like  regexp  in  contact   正文 下图是示例用到的数据表信息 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式   一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的. 注意在你使用S…
效果: 实现了注册界面的验证码验证.确认密码.密码md5加盐加密.C3P0插件数据库操作.读取外部配置文件. 1.在注册页面添加了确认密码输入框,修改了字段名称 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>注册</title> </head> <body> <form action="regist&q…
声明:本文只是自学过程中,记录自己不会的知识点的摘要,如果想详细学习JavaWeb,请到孤傲苍狼博客学习,JavaWeb学习点此跳转 本文链接:https://www.cnblogs.com/xdp-gacl/p/3798190.html //1.在内存中创建一张图片 BufferedImage创建图片使用的类 BufferedImage bi = new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB); //2.得到图片 Grap…
除了传统的PIL包处理图片,然后用pytessert+OCR识别意外,还可以使用tessorflow训练来识别验证码. 此篇代码大部分是转载的,只改了很少地方. 代码是运行在linux环境,tessorflow没有支持windows的python 2.7. gen_captcha.py代码. #coding=utf-8 from captcha.image import ImageCaptcha # pip install captcha import numpy as np import ma…
1.智能匹配操作符 替代绑定操作符: 在哈希中查找某一个键: 比較两个数组是否全然同样: 查找列表中是否存在某个元素: 智能匹配操作符与顺序无关.~~ 左右元素能够互换 2.智能操作符优先级 3.given语句 相当于c语言的switch语句 4.given能够測试多个条件,在default前用break.否则会导致default一直运行 5.笨拙匹配(正則表達式方式) 6.多个项目的when匹配 能够在语句中间加上其它语句:…
tr/ / / 替换操作符不支持正则表达式 也不具备双引号替换能力m/ /  s/ / / 都支持正则表达式,并且可以提供或限制双引号替换能力 $string = "25abc8";$string =~ /abc(?=[0-9])/;(?=pattern) 前看声明,如果正则表达式在下一次匹配 pattern 风格,就开始匹配,而且不影响匹配效果.如/\w+(?=\t)/将匹配制表符是否恰好在一个字\w+后面出现,并且制表符不添加到$&的值中:$matched = $&…
<?php $code = new Code(); $code->outImage(); class Code { //验证码个数 protected $number; //验证码类型 protected $codeType; //图像宽度 protected $width; //图像高度 protected $height; //图像资源 protected $image; //验证码字符串 protected $code; /** * Undocumented function * * @…
#include <stack> using std::stack ; 变量定义: stack<T>  stackName ; 成员函数: 成员函数 功能 bool  empty() 判断栈是否为空, 如果为空返回为false void  pop() 删除栈顶元素,出栈 void  push(const T &val ) 将元素进栈 T  &top() 查看当前的栈顶元素 unsin long  size() 返回栈中的元素数目              …
创建动画面临的第一个挑战是为动画选择正确的属性.期望的结果(例如,在窗口中移动元素)与需要使用的属性(在这种情况下是Canvas.Left和Canvas.Top属性)之间的关系并不总是很直观.下面是一些指导原则: 如果希望使用动画来使元素显示和消失,不要使用Visibility属性(该属性只能在完全可见和完全不可见之间进行切换).应改用Opacity属性淡入或淡出元素. 如果希望动态改变元素的位置,可考虑使用Canvas面板.它提供了最直接的属性(Canvas.Left及Canvas.Top),…
学习总结 1.文件函数原型1: FILE* fopen(char *filename, char *openmode);  //打开文件,返回文件指针 filename:文件名,更确切地说,是包含文件名的字符串地址: openmode:打开模式(r,w,a,r+,w+,a+,……) 打开失败返回NULL int getc(FILE *fp);  //读文件,返回字符 fp:读取文件指针 int putc(int ch, FILE *fp);  //写文件,返回写入字符的ASCII值 ch:字符…
学习总结 1.作用域可分为代码块作用域.函数原型作用域或者文件作用域. 代码块作用域例子: { for(int i=0;i<10;i++){  //C99允许 …  //i的作用域 } ... } 注:传统上,具有代码块作用域的变量必须在代码块的开始处进行声明,C99放宽这以规则,允许在一个代码中任何位置声明变量. 函数原型作用域例子: int add(int a, int b); a和b就是函数原型作用域的变量,在这函数内部都可以使用变量a和b,函数原型关注的是原型参数的类型,并非名字,所以在…
学习总结 1.字符串(character String)是以空字符串(\o)结尾的char数组. 2.gets()方法代表get String,它从系统的标准输入设备(通常是键盘)获取一个字符串,当字符串遇到换行符(\n)时就结束输入,丢弃\n符号,然后在字符串后添加空字符(\0)然后把这个字符串交给调用它的程序.Gets方法的构造原型是 char *gets(char *s){ … If(EOF) return NULL;//伪代码,说明用 … return s; } 从函数原型可以看,get…
学习总结 1.数组初始化方式: int a[]={1,2,3} int a[SIZE]={1,2,3} //SIZE是宏定义,数组初始化个数不能大于SIZE,否则报错:当个数小 //SIZE,自动补0:只定义不初始化,默认值是当前存储单元中已有的数值. int a[SIZE/不定长]={1,[3],2} //C99支持通过[int]=x来定义具体位置值,跳过的默认值为0. 2.通过const修饰的数组为只读数组,数组的每个元素当成常量来处理,如: const int a[2]={1,2}; co…
学习总结 1.函数有利于我们可以省去重复的代码,函数可以使程序更加模块化,从而有利于程序的阅读.修改和完善.我们在系统设计或架构设计的时候,往往追求的是模块化.组件化.松耦合,而函数就是其代码的表现.许多程序员喜欢把函数看作“黑盒子”,即对应一定的输入产生特定的结果或返回某个数值,而黑盒子的内部行为并不需要考虑,然而有助于把精力投入到程序整体设计而不是其实现细节.按照C设计原则,我们不应为每个任务编写一个单独的函数,而应该尽量把函数的功能进行抽象设计到达通用目的. 2.函数的组成部分有函数类型.…
学习总结 1.缓冲区分为完全缓冲区(fully buffered)I/O和行缓冲区(line-buffered)I/O.对完全缓冲输入来说,当缓冲区满的时候会被清空(缓冲区内容发送至其目的地).这类型的缓冲区通常出现在文件输入中.对于行缓冲I/O来说,遇到一个换行字符时将被清空缓冲区,键盘输入是标准的行缓冲区. 2.EOF是C对文件结尾的一个标识,在stdio.h头文件中定义,#define EOF (-1).在使用键盘输入时,可以通过Ctrl+D模拟EOF信号: #include <stdio…
学习总结 1.if…else…从语义上看就能出用途,跟其他语言没差多少,只需要记住,世界上最遥远的距离之一:我走if你却走else. 2.根据个人几年的编程经验,太多的if…else…嵌套会加大代码的可读性和维护难度.个人认为代码最好不要超过三层if…else…的嵌套,否则最好使用布尔值控制流程. 3.逻辑运算符优先级:!>&&>|| 4.运行到continue语句将导致剩余的迭代部分被忽略,开始下一次迭代.continue仅用于循环,而break语句用于循环和switch中.…