机器学习实战之决策树 你是否玩过二十个问题的游戏,游戏的规则很简单:参与游戏的一方在脑海里想某个事物,其他参与者向他提问题,只允许提20个问题,问题的答案也只能用对或错回答。问问题的人通过 推断分解,逐步缩小待猜测事物的范围。决策树的工作原理与20个问题类似,用户输人一系列数 据,然后给出游戏的答案。 现在我们已经大致了解了决策树可以完成哪些任务,接下来我们将学习如何从一堆原始数据中构造决策树。首先我们讨论构造决策
机器学习实战之K近邻算法 k近邻算法概述 简单地说,K近邻算法采用测量不同特征值之间的距离方法进行分类。 优 点 :精度高、对异常值不敏感、无数据输入假定。 缺点:计算复杂度高、空间复杂度高。 适用数据范围:数值型和标称型。它的工作原理是:存在一个样本数 据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据 与所属分类的对应关系。输人没有标签的新数据后,将新数据的每个特征与样本
基于PCA和SVM的人脸识别 svm推广到多类情况一对多的最大响应策略(one against all) 假设有A 、B、C.. D四类样本需要划分。在抽取训练集的时候,分别按照如下4种方式划分。 A. 所对应的样本特征向量作为正集(类标签为+1), B、C、D所对应的样本特征向量作为负集(类标签为-1). B所对应的样本特征向量作为正集,A. C. D所对应的样本特征向量作为负集 C所
图像识别初步 本文主要包括以下内容 模式与模式识别的基本概念过度拟合最小距离分类器基于相关的模板匹配本章的典型案例分析 基于最小距离分类器的鸾尾属植物分类基于相关技术的图像模式匹配模式识别概述模式识别(Pattern Recognition)是人类的一项基本智能,在日常生活中,人们经常在进行“模式识别”。随着20世纪40年代计算机的出现以及50年代人工智能的兴起, 人们当然 也希望能用计
图像特征提取 从本节开始, 我们将逐步从数字图像处理向图像识别过渡。 严格地说, 图像特征提取属于图像分析的范畴, 是数字图像处理的高级阶段, 同时也是图像识别的开始。本文主要包括以下内容 常用的基本统计特征, 如周长、面积、均值等区域描绘子, 以及直方图和灰度共现矩阵等纹理描绘子主成份分析(PCA, PrincipaJ Component Analysis)局部二进制模式(LBP, LocaJ
基于PCA的人脸特征抽取 我们将应用PCA技术来抽取人脸特征。一幅人脸照片往往由比较多的像素构成,如果以每个像素作为1维特征,将得到一个维数非常高的特征向量, 计算将十分困难;而且这些像素之间通常具有相关性。这样,利用PCA技术在降低维数的同时在一定程度上去除原始特征各维之间的相关性自然成为了一个比较理想的方案。 数据集简介 本案例采用的数据集来自著名的ORL人脸库。首先对该人脸库做一个简单的介绍: ORL数
阈值分割与区域分割 本文主要包括以下内容 阈值分割技术基于区域的图像分割技术本章的典型案例 基于LoG和Canny算子的精确边缘检测基于Hough变换的直线检测图像的四叉树分解阈值分割我们曾在3.5节学习过灰度阈值变换的相关知识, 利用灰度阈值变换分割图像就称为阈值分割, 它是一种基本的图像分割方法。 阙值分割的基本思想是确定一个阈值, 然后把每个像素点的灰度值和阈值相比较,根据比较的结果把该像素
图像分割 图像分割是指将图像中具有特殊意义的不同区域划分开来, 这些区域互不相交,每个区域满足灰度、纹理、彩色等特征的某种相似性准则。图像分割是图像分析过程中最重要的步骤之一,分割出的区域可以作为后续特征提取的目标对象。本文主要包括以下内容 基于梯度的Sobel、Prewitt和Roberts算子的边缘检测LoG边缘检测算法Canny边缘检测算法Hough变换和直线检测阙值分割技术基于区域的
形态学图像处理(二) 本文主要包括以下内容 二值形态学的经典应用, 细化和像素化, 以及凸壳灰度图像的形态学运算, 包括灰度腐蚀、灰度膨胀、灰度开和灰度闭本章的典型案例分析 在人脸局部图像中定位嘴的中心显微镜下图像的细菌计数利用顶帽变换(top-hat)技术解决光照不均问题 细化算法“骨架”是指一副图像的骨髓部分,它描述物体的几何形状和拓扑结构,是重要的图像描绘子之一,计算骨架的过程一般称为“细化”
形态学图像处理 形态学,即数学形态学(mathematical Morphology),是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质〈最具区分能力-most discriminative)的形状特征,如边界和连通区域等。同时像细化、像素化和修剪毛刺等技术也常应用于图像的预处理和后处理中,成为图像增强技术的有力补充。本文主要包括
彩色图像处理 彩色基础什么是彩色 彩色是物体的一种属性,就像纹理、形状、重量一样. 通常, 它依赖于3个方面的因素: 光源一一照射光的谱性质或谱能量分布.物体-一被照射物体的反射性质.成像接收器(眼睛或成像传感器)一一光谱能量吸收性质其中,光特性是颜色科学的核心。假如光没有颜色(捎色的,如观察者看到的黑白电视的光),那么它的属性仅仅是亮度或者数值。可以用灰度值来描述亮度, 光的范围从黑到灰.最后到白
频率域波图像增强 本文主要包括以下内容 频率域图像增强高通滤波器和低通滤波器本章的典型案例分析 利用频域滤波消除周期噪声频域滤波基础频域滤波与空域滤波的关系 傅立叶变换可以将图像从空域变换到频域,而傅立叶反变换则可以将图像的频谱逆变换为空域图像,即人可以直接识别的图像。这样一来,我们可以利用空域图像与频谱之间的对应关系,尝试将空域卷积滤波变换为频域滤波,然后再将频域滤波处理后的图像反变换回空间域,
傅立叶变换学习 空间域和频率域为我们提供了不同的视角. 在空域中. 函数的自变量(x, y)被视为二维空间中的一点, 数字图像J(x, y)即为一个定义在二维空间中的矩形区域上的离散函数:换一个角度, 如果将j(x, y)视为幅值变化的二维信号, 则可以通过某些变换手段(如傅立叶变 换、离散余弦变换、沃尔什变换和小波变换等〉在频域下对它进行分析.本文主要包括以下内容 傅立叶变换的数学基础快速傅立叶变换
中值滤波与图像锐化 本文主要包括以下内容 中值滤波及其改进算法图像锐化, 包括梯度算子、拉普拉斯算子、高提升滤波和高斯-拉普拉斯变换本章的典型囊例分析 对椒盐噪声的平滑效果比较Laplacian与LoG算子的锐化效果比较中值滤波中值滤波本质上是一种统计排序滤波器. 对于原图像中某点(i,j), 中值滤波以该点为中 心的邻域内的所有像素的统计排序中值作为(i, j) 点的响应. 中值不同于均值,
空间域图像增强 图像增强是数字图像处理相对简单却最具艺术性的领域之一,增强的目的是消除噪声, 显现那些被模糊了的细节或简单突出一幅图像中我们感兴趣的特征。一个简单例子是增强图 像的对比度, 使其看起来更加一目了然。增强是图像处理中非常主观的领域, 它以怎样构成 好的增强效果这种人为主观偏好为基础, 也正是这一点为其赋予了艺术性。这与图像复原技 术刚好相反, 图像复原也是改进图像外貌的一个处理领域, 但它是客
图像的几何变换 包含相同内容的两幅图像可能由于成像角度、透视关系乃至镜头自身原因所造成的几何失 真而呈现出截然不同的外观,这就给观测者或是图像识别程序带来了困扰。通过适当的几何变 换可以最大程度地消除这些几何失真所产生的负面影响,有利于我们在后续的处理和识别工作 中将注意力集中子图像内容本身,更确切地说是图像中的对象,而不是该对象的角度和位置等。 因此, 几何变换常常作为其他图像处理应用的预处理步骤, 是图
分段线性变换与直方图修正 本文主要包括以下内容分段线性变换两种实用的直方图修正技术:直方图均衡化和直方图规定化本章的典型案例分析 基于直方图均衡化的图像灰度归一化直方图匹配分段线性变换分段线性变换有很多种, 包括灰度拉伸、 灰度窗口变换等, 本节仅讲述最为常用的灰度拉伸. 利用分段线性变换函数来增强图像对比度的方法实际是增强原图各部分的反差,即增强输入图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区
图像的点运算 对于一个数字图像处理系统来说, 一般可以将处理流程分为3个阶段。在获取原始图像 后, 首先是图像预处理阶段, 其次是特征抽取阶段,最后才是识别分析阶段。预处理阶段尤 为重要, 这个阶段处理不好则直接导致后面的工作无法展开。 点运算指的是对图像中的每个像素依次进行同样的灰度变换运算。设r和s分别是输入 图像f(x,y)和输出图像g(x,y)在任一点(x,y)的灰度值,则点运算可以使用下式定义
图像处理中的matlab使用 图像的矩阵表示 类和图像类型 虽然使用的是整数坐标, 但 MATLAB 中的像素值(亮度)并未限制为整数。 表 1-1 列出了 MATLAB 和图像处理工具箱为描述像素值而支持的各种类。 表中的前 8 项是数值型的数据类,第 9 项称为字符类, 最后一项称为逻辑类。 uint8 和 logical 类广泛用于图像处理, 当以 TIFF 或 JPEG 图像文件格式读取图像时,会用到这两个类
数字图像处理入门 图像是指能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图形.图像的要素有儿何要素〈刻画对象的轮廓、 形状等〉和非几何要素(刻画对象的颜色、 材质等〉。什么是数字图像 简单地说, 数字图像就是能够在计算机上显示和处理的图像, 根据其特性可分为两大类一一位图和矢量圈。 位图通常使用数字阵列来表示, 常见格式有BMP、 1町、 GlF等:矢量图由矢量数据库表示,
大规模机器学习 如果我们有一个低方差的模型,增加数据集的规模可以帮助你获得更好的结果。我们应 该怎样应对一个有 100 万条记录的训练集? 以线性回归模型为例,每一次梯度下降迭代,我们都需要计算训练集的误差的平方和, 如果我们的学习算法需要有 20 次迭代,这便已经是非常大的计算代价。 首先应该做的事是去检查一个这么大规模的训练集是否真的必要,也许我们只用 1000 个训练集也能获得较好的效果,我们可以绘制学习
机器学习之推荐系统 我们从一个例子开始定义推荐系统的问题。 假使我们是一个电影供应商,我们有 5 部电影和 4 个用户,我们要求用户为电影打分。 基于内容的推荐系统 在一个基于内容的推荐系统算法中,我们假设对于我们希望推荐的东西有一些数据,这 些数据是有关这些东西的特征。 在我们的例子中,我们可以假设每部电影都有两个特征,如 x1x_1 代表电影的浪漫程度,x2x_2 代表电影的动作程度。 其中 i:
SVM实现邮件分类 首先学习一下svm分类的使用。 主要有以下步骤: Loading and Visualizing DatajTraining Linear SVM Implementing Gaussian KernelTraining SVM with RBF Kernel 选择最优的C, sigma参数 画出边界线 线性keneral实现 C = 1
机器学习之异常检测 问题的动机 什么是异常检测呢?为了解释这个概念,让我举一个例子吧: 假想你是一个飞机引擎制造商,当你生产的飞机引擎从生产线上流出时,你需要进行 QA (质量控制测试),而作为这个测试的一部分,你测量了飞机引擎的一些特征变量,比如引擎 运转时产生的热量,或者引擎的振动等等。 这里的每个点、每个叉,都是你的无标签数据。这样,异常检测问题可以定义如下:我 们假设后来有一天,你有一个新的飞
降维算法学习 降维的动机首先,让我们谈论降维是什么。作为一种生动的例子,我们收集的数据集,有许多, 许多特征,我绘制两个在这里。 假设我们未知两个的特征 x1:长度:用厘米表示;X2,是用英寸表示同一物体的长度。 所以,这给了我们高度冗余表示,也许不是两个分开的特征 x1 和 X2,这两个基本的长 度度量,也许我们想要做的是减少数据到一维,只要有一个数就可以测量这个长度。 有几个不同的的原
手写数字识别实现 本文主要实现手写数字识别,利用多类逻辑回归与神经网络两种方法实现 Multi-class Classification数据源 There are 5000 training examples in ex3data1.mat, where each training example is a 20 pixel by 20 pixel grayscale image of the digi
聚类算法学习 聚类是一种非监督学习方法 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正 样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签,我们需要据此拟合一 个假设函数。与此不同的是,在非监督学习中,我们的数据没有附带任何标签,我们拿到的 数据就是这样的: 在这里我们有一系列点,却没有标签。因此,我们的训练集可以写成只有 x(1),x(2)…..一直 到
支持向量机学习 与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性 方程时 供了一种更为清晰,更加强大的方式 如果我们用一个新的代价函数来代替,即这条从 0 点开始的水平直线,然后是一条斜 线,像上图。那么,现在让我给这两个方程命名,左边的函数,我称之为cost1(z)cos t_1(z) ,同时, 右边函数我称它为cost0(z)cost_0(z)。这里的下标是指在代价函数中
机器学习系统设计与建议 当我们在运用训练好了的模型来预测未知数据的时候发现有较大的误差,我们下一步可以 做什么? 1. 获得更多的训练实例——通常是有效的,但代价较大,下面的方法也可能有效,可 考虑先采用下面的几种方法。 2. 尝试减少特征的数量 3. 尝试获得更多的特征 4. 尝试增加多项式特征 5. 尝试减少归一化程度 λ 6. 尝试增加归一化程度 λ 我们不应该随机选择上面的某种方法来改进我们
神经网络学习 代价函数 首先引入一些便于稍后讨论的新标记方法: 假设神经网络的训练样本有 m 个,每个包含一组输入 x 和一组输出信号 y,L 表示神经 网络层数,SlS_l 表示每层的 neuron 个数(SLSL 表示输出层神经元个数),SLS_L 代表最后一层中处理 单元的个数。将神经网络的分类定义为两种情况:二类分类和多类分类, 二类分类:SLS_L=1, y=0 or 1 表示哪一类; K 类分类
神经网络入门 我们之前学的,无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时, 计算的负荷会非常大。 普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们 需要神经网络。 神经元和大脑 神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器。 神经网络逐渐兴起于二十世纪八九十年代,应用得非常广泛。但由于各种原因,在 90 年代的后期应用减少了。但是最近,神经网络又东山再
逻辑回归与正则化 在分类问题中,你要预测的变量 y 是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问 题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;之前我们 也谈到了肿瘤分类问题的例子,区别一个肿瘤是恶性的还是良性的。我们可以用逻辑回
多变量线性回归 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征, 例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,…,xn)增添更多特征后,我们引入一系列新的注释: n 代表特征的数量 x(i)x^{(i)}代表第 i 个训练实例,是特征矩阵中的第 i 行,是一个向量(vector)。 xijx^i_j 代表特征矩阵中第 i 行的第 j 个特征,也就是第
机器学习入门 机器学习是什么? 第一个机器学 习的定义来自于 Arthur Samuel。他定义机器学习为,在进行特定编程的情况下,给予计算机 学习能力的领域。 上述是个有点不正式的定义,也比较古老。另一个年代近一点 的定义,由 Tom Mitchell 提出,来自卡内基梅隆大学,Tom 定义的机器学习是,一个好的学 习问题定义如下,他说,一个程序被认为能从经验 E 中学习,解决任务 T,达到性能度量值
最短路径实现 主要工具 QGIS建立拓扑关系 Postgres存储数据表 Geoserver发布相关服务 QGIS建立拓扑关系使用v.clean运行,并用DBManager即可以建立拓扑关系并导入数据库。 注意 QGIS2.16有数据溢出问题,使用QGIS2.14可以解决这个问题 Postgr
IOS之笑脸app ios笑脸app实现 import UIKit@IBDesignableclass FaceView: UIView { @IBInspectable var lineWidth:CGFloat=3{didSet{setNeedsLayout()}} @IBInspectable var color:UIColor = UIColor.blueColor(){d
IOS之计算器实现 本文利用ios实现计算器app,后期将用mvc结构重构import UIKitclass CalculViewController: UIViewController { @IBOutlet weak var display: UILabel! var userIsInTheMiddleOFTypingANumber:Bool=false @IBAction func append
瓦片地图与geoserver发布 本文主要包括以下内容 TileMill生成Tile影像金字塔(.mbtiles压缩文件)Mbutil(https://github.com/mapbox/mbutil)解压缩Apache HTTP Server(或tomcat) 建立web瓦片服务客户端调用( http://www.arcgis.com/home)测试首先将数据导入postgres数据库中 osm2pgsql -s
Mac使用入门 mac常用快捷键全屏/退出全屏 ctr+command+F切换到桌面 fn+f11输入法切换 ctr+空格 亮度 f1、f2声音 f11、f12复制、粘贴 command+c、command+v搜索 command+f翻页 上一行是Command+上箭头 上一页
postgres与osm初步使用 layout: post title: postgres与osm初步使用 date: 2016-9-20 categories: blog tags: [地图开发]description:地图开发本文主要包括以下内容 postgreSQL数据库,用来存放地图原始数据osm2pgsql 用来将osm地图数据导入到postgreSQL OSM数据OpenStreetMap(简称
python异步爬虫 本文主要包括以下内容 线程池实现并发爬虫回调方法实现异步爬虫协程技术的介绍一个基于协程的异步编程模型协程实现异步爬虫线程池、回调、协程我们希望通过并发执行来加快爬虫抓取页面的速度。一般的实现方式有三种:线程池方式:开一个线程池,每当爬虫发现一个新链接,就将链接放入任务队列中,线程池中的线程从任务队列获取一个链接,之后建立socket,完成抓取页面、解析、将新连接放入
操作系统之死锁 死锁的概念以及产生死锁的原因一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程,如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。 死锁产生的必要条件产生死锁必须同时满足以下四个条件,只要其中任一条件不成立,死锁就不会发生。 互斥条件:进程要
Android之IPC机制 Android IPC简介任何一个操作系统都需要有相应的IPC机制,Linux上可以通过命名通道、共享内存、信号量等来进行进程间通信。Android系统不仅可以使用了Binder机制来实现IPC,还可以使用Socket实现任意两个终端之间的通信。IPC基础概念介绍(1)Serializable接口是Java中为对象提供标准的序列化和反序列化操作的接口,而Parcelable接口是Android提供的
Android之WebView学习 WebView常用方法WebSettings在使用WebView前我们都要进行相关的配置,常见的操作如下: WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); //支持javascript settings.setUseWideViewPor
python基础语法(二) 本文主要包括以下内容 函数 切片 迭代 列表生成式 生成器 迭代器函数定义函数定义函数在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。我们以自定义一个求
python基础语法 python基础语法,主要基于2.7,对于3.0的改动有部分指出 链接:几分钟快速入门Python - 简书本文主要包括以下内容 输入输出 数据类型与变量 字符串与编码 list与tuple 循环 dict与setpython基础语法输入输出 用print(
KMP算法学习 kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是遍历a的每一个位置,然后从该位置开始和b进行匹配,但是这种方法的复杂度是O(nm)。kmp算法通过一个O(m)的预处理,使匹配的复杂度降为O(n+m)。参考链接:【经典算法】——KMP,深入讲解next数组的求解 - c_cloud - 博客园 讲解的非常清楚明白主要就是nex
Django搭建简易博客 Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markdown与代码高亮 归档,AboutME和标签分类 搜索与ReadMore RSS与分页 需要添加的安装包 p
Django环境配置 Django安装 #安装最新版本的Django$ pip install django #或者指定安装版本pip install -v django==1.7.1项目创建 $ django-admin startproject my_blog建立Django app $ python manage.py startapp article运行程序 $ pyth
ThinkPHP入门(二) smarty使用smarty引入流程 1. 控制器IndexAction.class.php function index() $this -> display(); (父类Action的display)2. 父类ThinkPHP/Lib/Core/Action.class.php function display() $th
ThinkPHP入门 ThinkPHP项目的创建 <?phpinclude "../../ThinkPHP/ThinkPHP.php";在index.php中导入ThinkPHP.php即可,会自动创建目录。 tp创建流程分析 1. 入口文件index.php2. ThinkPHP/ThinkPHP.php require THINK_PATH.'Common/run
Android高性能ORM数据库DBFlow入门 DBFlow,??? ActiveAndroid, Schematic, Ollie,Sprinkles ??????????????,?????????,????greenDAO???????,??apt??,???????????,?????ActiveAndroid????,???????:1??????????;2???annotation processing????;3?ModelCon
PHP数据库操作 PHP?????????? <?php$conn=mysql_connect('localhost','root','root');if(!$conn){echo "connect failed";exit;}$sql='use test';mysql_query($sql,$conn);//??$sql="insert into mytest values(null,'p
Smarty模板技术学习(二) 本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象、注册对象 与已有项目结合公共文件引入与继承可以把许多模板页面都用到的公共页面放到单独文件里边,通过模板就可以直接调用,类似php里边通过include指令引入公共文件一样。 {include file=”[模目录
Smarty模板技术学习 模板引擎技术:使得php代码和html代码分离的技术就称为“模板引擎技术”自定义smarty模板技术实现 <?php//迷你smarty原理class MiniSmarty{ public $var_arr = array(); public $template_dir = "./view/"; public $compile_dir = "./view_c/";
微信开发简单实例 本文主要包括以下内容 1. 微信聊天机器人 微信聊天机器人利用图灵机器人接口实现微信聊天机器人 <?phpdefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();if (isset($_GET['echostr'])) { $wechatObj->valid();}else{
PHP之MVC项目实战(三) 本文主要包括以下内容 标准错误错误处理 http操作 PDO 文件操作标准错误错误处理PHP在语法层面上发生的错误 两个过程: 触发阶段(发生一个错误) 处理阶段(如何处理该错误) 触发阶段系统触发,php自己触发 典型的都是由php的核心在执行或者编译php代码时,发现的错误,并触发该错误!用户触发,自定义错误
PHP之MVC项目实战(二) 本文主要包括以下内容 GD库图片操作 利用GD库实现验证码 文件上传 缩略图 水印GD库图片操作<?php$img = imagecreatetruecolor(500, 300);//var_dumP($img);////分配绿色$green = imagecolorallocate($img, 0, 0xff
PHP之MVC项目实战 本文主要包括以下内容 类文件自动加载 路径管理 页面跳转 注册自动加载方法 配置文件系统 cookie session类文件自动加载在PHP中使用别的类时,需要载入类文件,如果类很多的话,需要重复写很多代码,所以利用__autoload魔法方法实现自动加载 /** * 自动加载函数 * * @
PHP之MVC学习 代码架构进货过程 one,混编嵌入式脚本语言PHP html与php混编的编码方式 two,显示和逻辑相分离最后,需要将显示和逻辑的结果放在一起! 需要在 php页面,将html代码 载入才可以!<?php// 业务逻辑部分// 得到数据//得到所有的比赛信息mysql_connect('127.0.0.1:3306', 'root', '123456');m
微信开发入门 微信开发需要搭建PHP环境 参考链接:Apache2.2与php5.3.5如何整合?如何能够被使用_百度经验搭建的过程出现了很多坑,只能小心,重复搭建了,错误原因可能是VC9或VC11环境没有配置的原因,多试试才行。然后通过基本配置修改微信服务器配置,这样发送的消息就会发送到我们的URL,而不是微信官方的,从而实现自定义微信。接入微信公众平台开发,开发者需要按照如下步骤完成:1、填写服务器配
Ionic2 Tutorial build your first appNow that you have Ionic and its dependencies installed, you can build your first app! This section will guide you through the process of starting a new application, adding pages, na
Ionic环境搭建 steptsnpm install -g ionic@beta Make sure you have NodeJS installed. Download the installer here or use your favorite package manager. It’s best to get the 5x version of node along with the 3x v
PHP数据库操作 PHP实现数据库的增删改查 <?php$conn=mysql_connect('localhost','root','root');if(!$conn){echo "connect failed";exit;}$sql='use test';mysql_query($sql,$conn);//增加$sql="insert into mytest values(null,'p
PHP环境搭建 在搭建PHP环境的过程中遇到不少坑,在这里记录下来,方便自己复习以及后来者。 Apache安装过程下载安装过程参考 如何从Apache官网下载windows版apache服务器_百度经验 Apache服务器最新版下载、安装及配置(win版)_百度经验httpd -k install安装服务 在安装服务的过程中可能会报ServerRoot must be valid directory的错
数据结构之字典序全排列 字典序法中,对于数字1、2、3……n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字的排列 12354和12345,排列12345在前,排列12354在后。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 54321。字典序算法如下: 设P是1~n的一个全排列:p=p1p2……pn=p1p2……pj-1pjpj+1……pk-1pkpk+1
数据结构之拓扑排序 React Native 开发越来越火了,web app也是未来的潮流, 现在react native已经可以完成一些最基本的功能. 通过开发一些简单的应用, 可以更加熟练的掌握 RN 的知识. 在学习的过程,发现了一个房产搜索APP的实例,但只有ios版本, 本文主要是房产搜索APP的android版本实现。原Ios版本 React Native 实例 - 房产搜索App Mystra原版效果
数据结构之最小生成树 prime算法普里姆(Prim)算法,是用来求加权连通图的最小生成树的算法。 基本思想 对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。 从所有uЄU,vЄ(V-U) (V-U表示出去U的所有顶点)的边中选取权值最小的边(u, v),将顶点v加入集合U中,将边(u, v)加入集合T中,如此不断重复,直到U=V为止,最
React Native实例之房产搜索APP React Native 开发越来越火了,web app也是未来的潮流, 现在react native已经可以完成一些最基本的功能. 通过开发一些简单的应用, 可以更加熟练的掌握 RN 的知识. 在学习的过程,发现了一个房产搜索APP的实例,但只有ios版本, 本文主要是房产搜索APP的android版本实现。原Ios版本 React Native 实例 - 房产搜索App Mystra原版效果
数据结构之Dijkstra算法 本文主要包括以下内容 邻接矩阵实现无向图的BFS与DFS 邻接表实现无向图的BFS与DFS理论介绍深度优先搜索介绍图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有
数据结构之DFS与BFS实现 本文主要包括以下内容 邻接矩阵实现无向图的BFS与DFS 邻接表实现无向图的BFS与DFS理论介绍深度优先搜索介绍图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有
React Native官方DEMO 官方给我们提供了UIExplorer项目,这里边包含React Native的基本所有组件的使用介绍和方法。运行官方DEMO步骤如下 安装react native环境 React Native项目源码下载下载安装cygwin软件 下载安装NDK然后安装以及配置 添加Node依赖模块:该命令行需要切到react-native项目中,主要运行如下命令 cd react-native以及n
数据结构之图的实现 本文主要包括以下内容 邻接矩阵实现无向图 邻接表实现无向图 邻接矩阵实现有向图邻接表实现有向图 图的理论基础,请参考:图的理论基础 - 如果天空不死 - 博客园邻接矩阵实现无向图MatrixUDG是邻接矩阵对应的结构体。 mVexs用于保存顶点,mVexNum是顶点数,mEdgNum是边数;mMatrix则是用于保存矩阵信息的二维数组。例如,mMatrix[i][j]=1,则表示”
React Native实例 本文主要包括以下内容 View组件的实例 Text组件实例 Navigator组件实例 TextInput组件实例View组件的实例效果如下 代码如下 /** * Sample React Native App * https://github.com/facebook/react-native * @flow */import Reac
React之JSX入门 React是由ReactJS与React Native组成,其中ReactJS是Facebook开源的一个前端框架,React Native 是ReactJS思想在native上的体现! JSX并不是一门新的语言,仅仅是个语法糖,允许开发者在JavaScript中书写HTML语法。,最后每个 HTML标签都转化为JavaScript代码来运行 1.环境 2.载入方式 3.标签 HTML标
React基础语法学习 React主要有如下3个特点: 作为UI(Just the UI)虚拟DOM(Virtual DOM):这是亮点 是React最重要的一个特性 放进内存 最小更新的视图,差异部分更新 diff算法数据流(Date Flow)单向数据流学习React需要掌握哪些知识? JSX语法 类似XMLES6相关知识前端基础 CSS+DIV JS例子一 (简单组件和数据传递) 使用t
ReactNative环境配置 参考链接Windows系统安装React Native环境windows下React Native Android 环境搭建在Windows下搭建React Native Android开发环境碰到的问题 react-native可能在cmd窗口提示不是内部或外部命令 解决方法:在nodeJS command prompt下可以运行 运行时卡在最后,程序是白屏 解决方法:为应用程序添加悬浮窗
数据结构之哈夫曼树 哈夫曼树的介绍定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。 构造一棵哈夫曼树假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,哈夫曼树的构造规则为: 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); 在森林中选出根结点的权值最小的两棵树进行合并,作为一棵新树
数据结构之二叉堆 二叉堆的介绍二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。 最大堆:父结点的键值总是大于或等于任何一个子节点的键值; 最小堆:父结点的键值总是小于或等于任何一个子节点的键值。示意图如下:二叉堆一般都通过”数组”来实现。数组实现的二叉堆,父节点和子节点的位置存在一定的关系。有时候,我们将”二叉堆的第一个元素”放在数组索引0的位置
EventBus学习入门 EventBus Features What makes greenrobot’s EventBus unique, are its features:Simple yet powerful: EventBus is a tiny library with an API that is super easy to learn. Nevertheless, your software archit
FastPolice项目总结 This is the final homework for spatial information Mobile Service Lesson.It generally inclusived these models. welcome page I used a openlibary to do it ,when you first launch your application,the prom
Android缓存学习入门(二) 本文主要包括以下内容 内存缓存策略 文件缓存策略 内存缓存策略当有一个图片要去从网络下载的时候,我们并不会直接去从网络下载,因为在这个时代,用户的流量是宝贵的,耗流量的应用是不会得到用户的青睐的。那我们该怎么办呢?这样,我们会先从内存缓存中去查找是否有该图片,如果没有就去文件缓存中查找是否有该图片,如果还没有,我们就从网络下载图片。本博文的侧重点是如何做内存缓存,内存缓存的查找策略是:
数据结构之AVL树 AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。旋转如果在AVL树中进行插入或删除节点后,可能导致AVL树失去平衡。这种失去平衡的可以概括为4种姿态:LL(左左),LR(左右),RR(右右)和RL(右左)。下面给出它们的示意图:1) LL:LeftLeft,也称为”左左”。插入或删除一个节点后,根节点的左子树的左子树还有非空子节点,导致”根的左子树的高度”比
OkHttp学习总结 This paper mainly includes the following contentsokhttp ordinary operation. okhttp interceptors. RecipesWe’ve written some recipes that demonstrate how to solve common problems with OkHttp. Read t
数据结构之二叉搜索树 二叉搜索树一棵二叉树,可以为空;如果不为空,满足以下性质: 1. 非空左子树的所有键值小于其根结点的键值。 2. 非空右子树的所有键值大于其根结点的键值。 3. 左、右子树都是二叉搜索树。 二叉搜索树的插入,删除,查找 头文件 #include "iostream"#include "string.h"#include "sstream"using namespace std
Android缓存学习入门 本文主要包括以下内容 利用LruCache实现内存缓存 利用DiskLruCache实现磁盘缓存 LruCache与DiskLruCache结合实例 利用了缓存机制的瀑布流实例 内存缓存的实现public class PhotoWallAdapter extends ArrayAdapter<String> implements OnScrollListener
Android高性能ORM数据库DBFlow入门 DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点。同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后。基于注解,使用apt技术,在编译过程中生成操作类,使用方式和ActiveAndroid高度相似,使用简单。特性:1、无缝支持多个数据库;2、使用annotation processing提高速度;3、ModelCon
Volley学习总结 本文主要包括以下内容volly基本操作(String与Json类型) volly图片操作 自定义volly volly源码分析 Volley简单易用,在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。在Android studio中导入volley
Android单元测试 安卓单元测试总结文章,目测主要会cover以下的主题:什么是单元测试为什么要做单元测试JUnitMockitoRobolectricDagger2一个具体的app例子实践神秘的bonusJUnit测试在写测试之前,让我们做下简单的检查,确保工程配置正确。首先,确认在Build Variants窗口内的Test Artifact中选择了”Unit Tests”。如果不是的话,产生的测
Retrofit与RXJava整合 Retrofit 除了提供了传统的 Callback 形式的 API,还有 RxJava 版本的 Observable 形式 API。下面我用对比的方式来介绍 Retrofit 的 RxJava 版 API 和传统版本的区别。以获取一个 User 对象的接口作为例子。使用Retrofit 的传统 API,你可以用这样的方式来定义请求:@GET("/user")public void getUser
Retrofit学习入门 Retrofit的使用设置权限与添加依赖 定义请求接口通过创建一个retrofit生成一个接口的实现类(动态代理)调用接口请求数据设置权限与添加依赖权限:首先确保在AndroidManifest.xml中请求了网络权限 :<uses-permission android:name="android.permission.INTERNET" />(2)Studio用户,在app/build
RxJava学习入门 RxJava是什么一个词:异步。RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概
Android下拉刷新效果实现 本文主要包括以下内容 自定义实现pulltorefreshView使用google官方SwipeRefreshLayout下拉刷新大致原理 判断当前是否在最上面而且是向下滑的,如果是的话,则加载数据,并更新界面。自定义实现pulltorefreshViewpackage com.jimstin.pulltorefreshviewdemo.view;import com.jimstin.pu
FragmentPagerAdapter实现刷新 在fragmentpageadapter的instantiateItem方法里,他会先去FragmentManager里面去查找有没有相关的fragment如果有就直接使用如果没有才会触发fragmentpageadapter的getItem方法获取一个fragment。所以你更新fragments集合是没有作用的。所以要用新的方法实现刷新功能主要思路 就是用新的fragment替换Fragme
环信SDK集成 利用环信SDK可以实现即时通讯,但在集成的过程中碰到了不少的坑。注意选择项目路径,这里以最新版环信demo为例 注意:环信的ChatDemoUI这个demo里边因为研发的同事为了照顾老版本的AndroidStudio使用者,已经用eclipse生成了build.gradle文件,所以如果要导入新版AndroidStudio请把build.gradle删除参考链接 关于新版AndroidStudi
Android手绘效果实现 效果图原理大概介绍一下实现原理。首先你得有一张图(废话~),接下来就是把这张图的轮廓提取出来,轮廓提取算法有很多,本人不是搞图像处理的,对图像处理感兴趣的童鞋可以查
Java之IO操作总结 所谓IO,也就是Input与Output的缩写。在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写其他知识点将放置后续章节对于文件内容的操作主要分为两大类分别是:字符流字节流其中,字符流有两个抽象类:Writer Reader其对应子类FileWriter和FileReader可实现文件的读写操作BufferedWriter和BufferedReader能够提供缓冲区功能,
WebService之CXF框架 本文主要包括以下内容ant工具的使用利用cxf实现webservicecxf与spring整合 ajax访问webservice ant 工具1、为什么要用到ant这个工具呢?Ant做为一种工具已经广泛被使用,并且历史悠久。 使用ant的内置命令,可以编译java源文件(javac),运行java文件(java),给class文件打包(jar、war、ear), 也可以创建(mkdi
WebService入门 webservice 的概念,解决什么问题?webservice 就是一个应用程序,它提供一种通过web 方式访问的api. 解决两个系统或者(应用程序)之间的远程调用….. 调用是跨语言,跨平台… webservice 最基本的组成部分就是客户端,服务端… webservice 中的一些概念 服务端:(作为服务端,怎么将自己的应用程序发布成一个webservice,让别人调用
豆瓣加载动画实现 最终效果如下ValueAnimator类API 简介ofFloat(float… values) 构建ValueAnimator,设置动画的浮点值,需要设置2个以上的值setDuration(long duration) 设置动画时长,默认的持续时间为300毫秒。setInterpolator(TimeInterpolator value) 设置动画的线性非线性运动,默认A