1. Canny边缘检测 OpenCV提供了Canny函数来识别边缘.Canny边缘检测算法有5个步骤:使用高斯滤波器对图像进行去噪.计算梯度.在边缘上使用非最大抑制(NMS).在检测到的边缘上使用双阈值去除假阳性(false positive),最后还会分析所有的边缘及其之间的连接,以保留真正的边缘并消除不明显的边缘. import cv2 import numpy as np img = cv2.imread("flower.jpg") cv2.imwrite("cann…
一.使用OpenCV处理图像 1.不同颜色空间的转换 OpenCV中有数百种关于在不同色彩空间之间转换的方法.当前,在计算机视觉中有三种常用的色彩空间:灰度.BGR以及HSV(Hue, Saturation, Value) 灰度色彩空间是通过去除彩色信息来将其转换为灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测. BGR,即蓝-绿-红色彩空间,每一个像素点都由一个三元数组来表示,分别代表蓝.绿.红三种颜色. HSV,H(Hue)是色度,S(Saturation)是饱和度,V(value)表示…
1. 图像与原始字节之间的转换 从概念上讲,一个字节能表示0到255的整数.目前,对于多有的实时图像应用而言,虽然有其他的表示形式,但一个像素通常由每个通道的一个字节表示. 一个OpenCV图像是.array类型的二维或三维数组.8位的灰度图像是一个含有字节值的二维数组.一个24位的BGR图像是一个三维数组,它也包含了字节值.可使用表达式访问这些值,如image[0,0]或image[0,0,0].第一个值代表像素的y坐标啊或行,0表示顶部:第二个值是像素的x坐标或列,0表示最左边:第三个值(如…
图像的几何变换主要包括:平移.扩大与缩小.旋转.仿射.透视等等.图像变换是建立在矩阵运算基础上的,通过矩阵运算可以很快的找到对应关系. 1. 图像的平移 图像的平移,沿着x方向tx距离,y方向ty距离,需要构造移动矩阵M.通过numpy来产生这个矩阵,并将其赋值给仿射函数cv2.warpAffine(). 仿射函数cv2.warpAffine()接受三个参数,需要变换的原始图像,移动矩阵M 以及变换的图像大小(这个大小如果不和原始图像大小相同,那么函数会自动通过插值来调整像素间的关系). imp…
Python3下OpenCV的安装 :http://blog.csdn.net/lwplwf/article/details/61616493 1. 读/写图像文件 OpenCV的imread()函数和imwrite()函数能支持各种静态图像文件格式.不同系统支持的文件格式不一样,但都支持BMP格式,通常还应该支持PNG.JPEG和TIFF格式. 无论哪种格式,每个像素都会有一个值,但不同格式表示像素的方式有所不同.如: import cv2import numpy as np img = np…
1.源代码下载地址 <OpenCV3 计算机视觉--Python语言实现 第二版>由我们翻译,英文书名<Learning OpenCV3 Computer Vision with Python second edition>源代码的下地址为: https://github.com/techfort/pycv 或 http://examples.oreilly.com/9781785283840/ 2.纠错 (1)第11页最下面的第二行代码中的“libavcodecdev”应修改为“…
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 算术运算符 包括:+,-, *,/, %, ++, --. a := 1 b := 2 c c = a + b 关系运算符 包括:==, !=, >, <, >=, <= 逻辑运算符 包括:&&, ||, !…
理解与计算机视觉相关的算法.模型以及OpenCV 3 API背后的基本概念,有助于开发现实世界中的各种应用程序(比如:安全和监视领域的工具). OpenCV 3是一种先进的计算机视觉库,可以用于各种图像和视频处理操作,通过OpenCV 3 能很容易地实现一些有前景且功能先进的应用(比如:人脸识别或目标跟踪等).<OpenCV 3计算机视觉:Python语言实现(第2版)>将从图像处理的基本操作出发,带你开启先进计算机视觉概念的探索之旅.计算机视觉是一个快速发展的学科,在现实生活中,它的应用增长…
使用分水岭和GrabCut算法进行物体分割 用GrabCut算法进行图像分割 在OpenCV中,实现了grabcut分割算法,该算法可以方便的分割出前景图像,操作简单,而且分割的效果很好.算法的原理参见papaer:"GrabCut" - Interactive Foreground Extraction using Iterated Graph Cuts 比如下面的一副图,我们只要选定一个四边形框,把框中的图像作为grabcut的一个输入参数,表示该框中的像素可能属于前景,但框外的部…
什么是程序? 程序等于数据结构加算法,那么数据结构是一个静态的东西,算法是一个动态的东西,我们用一个新的语言编写这个程序,我们要考虑到语言也主要由数据结构和算法相关的东西,或静态或动态的东西来构成,所以我们可以把一门语言进行拆解,比如现在这门语言就是Python,那么Python这门语言是就拆解为面向对象和面向过程,那么我们知道以前的程序语言C语言就是面向过程的语言,而C++就是面向对象的语言,然后横向的我们还要考虑数据结构和算法.这样我们可以把一门语言的学习氛围四大块,第一款就是面向过程的数据…
函数 1.python里的函数可以返回一个值或者对象,知识在返回一个容器对象的时候有点不同,看起来像是能返回多个对象. >>> def bar(): ... return 'abc', '123' ... >>> bar() ('abc', '123') >>> type(bar()) #返回的其实是元组 <type 'tuple'> 简而言之,如果没有显式的返回于元素或者若果返回None时,python会返回一个None.如果函数返回多个…
python中的加减乘除比其他的语言简单,不需要对其赋值变量 加减乘除 ) #加法 ) #减法 ) #乘法 ) #除法 5.0 ) #乘方 判断 判断返回的是True或者False ) #等于 True ) #不等于 False ) #大于,>= 大于等于 False ) #小于 ,<= 小于等于 True in [1,2,3,4,5]) #5在list中 True 逻辑运算符 AND,OR,NOT >>> print(True or False) # or, "或…
使用OpenCV3处理图像 下面要介绍的内容都与图像处理有关,这时需要修改图像,比如要使用具有艺术性的滤镜.外插(extrapolate)某些部分.分割.粘贴或其他需要的操作. 不同色彩空间的转换 OpenCV中有数百种关于在不同色彩空间之间转换的方法.当前,在计算机视觉中有三种常用的色彩空间:灰度.BGR以及HSV(Hue,Saturation,Value) 1.灰度色彩空间是通过去除彩色信息来将其转换成灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测. 2.BGR,即蓝-绿-红色彩空间,每…
1.平方根的格式化 知识点:平方根计算 pow(a,0.5)[可以计算负数,结果为复数] a**b 例题: 获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出.‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬ 输出结果采用宽度30个字符.右对齐输出.多余字符采用加号(+)填充.‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪…
流程控制 1.条件语句 举个栗子: if x>5 { return 1; }else{ return 0; } 注意:  条件语句不需要使用括号将条件包含起来(); 无论语句体内有几条语句,花括号{}都是必须存在的; 左花括号{必须与if或者else处于同一行; 在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔; 在有返回值的函数中,不允许将"最终的"return语句包含在if...else...结构中,否则会编译失败: function ends with…
日期:2014年7月22日   一.array[数组]   1.定义:array 由 [n]<type> 定义,n 标示 array 的长度,而 <type> 标示希望存储的内容的类型.     例如:     var arr[10] int     arr[0] = 1     arr[1] = 2     数组值类型的:将一个数组赋值给 另一个数组,会复制所有的元素.另外,当向函数内传递一个数组的时候,它将获得一个数组的副本,而不是数组的指针.   2.数组的复合声明.a :=…
人脸检测和识别 本章将介绍Haar级联分类器,通过对比分析相邻图像区域来判断给定图像或子图像与已知对象是否匹配.本章将考虑如何将多个Haar级联分类器构成一个层次结构,即一个分类器能识别整体区域(如人脸),而其他的分类器可识别小的区域(眼睛.鼻子和嘴). Haar级联的概念 当谈到目标分类和位置跟踪时,希望精确定位什么?什么才是目标的可识别部分? 摄影作品(甚至是来自网络摄像头的图像)可能包含很多令人愉悦的细节.但是,由于灯光.视角.视距.摄像头抖动以及数字噪声的变化,图像细节变得不稳定.人们在…
不同色彩空间的转换 当前,在计算机视觉中有三种常用的色彩空间:灰度.BGR以及HSV 1.灰度色彩空间是通过去除彩色信息来将其转换为灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测 2.BGR,即蓝绿红色彩空间,每一个像素点都由一个三元组来表示 3.HSV,H(Hue)是色调,S(Saturation)是饱和度,V(value)表示黑暗的程度(或光谱另一端的明亮程度) 傅里叶变换 Numpy里有快速傅里叶变换(FFT)的包,它包含了fft2()函数,该函数可以计算一副图像的离散傅里叶变换(DF…
基本I/O脚本 读/写图像文件 OpenCV的imread函数和imwrite函数能支持各种静态图像文件格式.不同系统支持的文件格式不一样,但都支持BMP格式,通常还应该支持PNG.JPEG和TIFF格式. 大多数常用的opencv函数都在cv2模块中.可能也会遇到其他基于cv或cv2.cv模块的opencv帮助,这些都是传统版本.Python模块被称为cv2并不表示该模块是针对OpenCv2.x.x版本的 imread()函数的参数: 1.IMREAD_ANYCOLOR=4 2.IMREAD_…
使用 const 创建常量和使用 volatie 优化变量 C语言中使用 const 定义常量. 例如: const INT a = 10; 此处如果添加a = 20;,编辑器则会报错,因为此处 a 是只读的. 在编译过程中,由 const 定义的常量使用字符表存储,而不占用内存,提高了程序的效率. 注意:为了区别变量和常量,编程时常常使用大写字母来置顶常量的名称来提高可读性. 使用 volatile 定义一个常常需要更改的变量.使用 volatile 定义的变量会在编译器优化时更新,而不是读取…
本来这篇是准备5.15更的,但是上周一直在忙签证和工作的事,没时间就推迟了,现在终于有时间来写写Learning Spark最后一部分内容了. 第10-11 章主要讲的是Spark Streaming 和MLlib方面的内容.我们知道Spark在离线处理数据上的性能很好,那么它在实时数据上的表现怎么样呢?在实际生产中,我们经常需要即使处理收到的数据,比如实时机器学习模型的应用,自动异常的检测,实时追踪页面访问统计的应用等.Spark Streaming可以很好的解决上述类似的问题. 了解Spar…
假如有学生成绩以字典顺序排列:{'Tom': 87, 'Jack': 90, 'Rose': 100.....} 想要根据学生的成绩来进行排序,可以考虑使用sorted函数.但是sorted函数用在字典中,是仅对字典的键进行排序的,而不考虑值. 那么我们可以通过zip函数,将字典转化为一个元组: >>> from random import randint >>> s = {x: randint(60, 100) for x in 'abcdef'} {'a': 72,…
概览 代码实战 https://github.com/xinghalo/ml-in-action/tree/master/book-opencv…
Request: Test1(基本属性:POST): 代码1: import requests # 发送POST请求 data = { } response = requests.post(url, data=data) POST请求 Test2(auth认证): 代码2: import requests # 发送POST请求 data = { } response = requests.post(url, data=data) #内网 => 需要认证 auth = (user, pwd) re…
这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档:http://docs.python.org/.在此向文档编辑者致谢.请勿将本文用于商业用途. 一.Python语言介绍 首先,Python是一种广泛应用的通用高级编程语言,具有较高的抽象层次,支持面向对象的编程方法.其具有高级的数据结构和许多方便的库文件,可以完成文件IO.系统调用.网络编程,甚至…
Python是一种解释性(没有编译).交互式.面向对象的语言 1.安装python编译器 版本:Python2.7比较普遍,Python不是向下兼容的软件,因此Python3.x有些东西不好找资料 2.在 Windows 设置环境变量,在命令提示框中(cmd) : 输入 path %path%;C:\Python , 按下"Enter".在环境变量中添加Python目录(注意: C:\Python 是Python的安装目录.) 3.输入ctrl+z再按Enter键退出Python编译器…
注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对偶函数的对偶因子α:第二部分是SMO算法对于对偶因子的求解:第三部分是核函数的原理与应用,讲核函数的推理及常用的核函数有哪些:第四部分是支持向量机的应用,按照机器学习实战的代码详细解读. 机器学习之支持向量机(一):支持向量机的公式推导 机器学习之支持向量机(二):SMO算法 机器学习之支持向量机(…
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": "电脑","price":"1999"}, {"name": "鼠标", "price": "10"}, {"name": "游艇", &q…
为什么学Python语言,只需四步全面了解Python语言每个时代都会悄悄犒赏会选择的人,Python现在风口的语言Python--第三大主流编程语言Python , 是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,Python 已经成为继JAVA,C++之后的的第三大语言. 特点:简单易学.免费开源.高层语言.可移植性强.面向对象.可扩展性.可嵌入型.丰富的库.规范的代码等. Python--无所不能的编程语言Python除了极少的事情不能做之外,其他基本上可以说全能,系统运维.…
1 Python基本语法元素 1.1 程序设计基本方法 计算机发展历史上最重要的预测法则     摩尔定律:单位面积集成电路上可容纳晶体管数量约2年翻倍 cpu/gpu.内存.硬盘.电子产品价格等都遵循此定律 50年来计算机是唯一一个指数发展的领域 源代码.目标代码(机器代码) 编译.解释 静态语言.脚本语言 静态语言编译器一次性生成目标代码,优化更冲份,程序运行速度更快 脚本语言 执行程序时需要源代码,维护更灵活 程序的基本设计方法IPO I:input  文件输入.网络输入.控制台输入.交互…