OpenCV3 for python3 学习笔记1】的更多相关文章

3.5.Canny边缘检测 OpenCV提供了Canny边缘检测函数来识别边缘.它有5个步骤:使用高斯滤波器对图像进行去噪.计算梯度.在边缘上使用最大抑制(NMS).在检测到的边缘上使用双阀值去除 假阳性(false positive),最后还会分析出所有的边缘及其之间的连接,以保留真正的边缘并消除不明显的边缘. import cv2 import numpy as np img = cv2.imread("flower.jpg") cv2.imwrite("canny.jp…
本文的内容都与图像处理有关,这时需要修改图像,比如要使用具有艺术性的滤镜.外插(extrapolate)某些部分.分割.粘贴或其他需要的操作. 1.不同色彩空间的的转换 OpenCV有数百种关于在不同色彩空间之间转换的方法.当前,计算机视觉中有三种常用的色彩空间:灰度.BGR以及HSV(Hue,Saturation,Value). 灰度色彩空间是通过去除彩色信息来将其转换成灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测. BGR,即蓝-绿-红色彩空间,每一个像素点都由一个三元数组来表示,分别…
1.读/写图像文件 OpenCV的imread()函数和imwrite()函数能支持各种静态图像文件格式.不同系统支持的文件格式不一样,但都支持BMP格式,通常还应该支持PNG.JPEG和TIFF格式. 无论哪种格式,每个像素都会有一个值,但不同格式表示像素的方式有所不同.如: import cv2 import numpy as np import os img = np.zeros((300, 300), dtype = np.uint8) # 通过二维NumPy数组来简单创建一个黑色的正方…
1.安装 如果你是第一次使用OpenCV Python开发包,想要安装OpenCV Python只要执行如下命令行即可:  pip install opencv-python   如果你还想使用OpenCV Python的扩展模块,执行如下命令行即可:  pip install opencv-contrib-python   如果你已经安装了OpenCV以前的3.x版本只需要执行对应的升级安装命令行如下(假设你已经安装opencv-python 3.x)  pip install –upgrad…
Python3学习笔记(urllib模块的使用)   1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) -         url:  需要打开的网址 -         data:Post提交的数据 -         timeout:设置网站的访问超时时间 直接用urllib.request模块的urlopen…
前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程是参考了廖雪峰的官方网站,教程非常详细,一步步照着学习就行了,我在自己的文章中就尽量不重复了.我会在自己后续的文章中会结合一些实例来学习Python3. 环境介绍 系统:Centos 7.4 编辑器:Vim 工具:Docker CE v17.09.0 & Docker Compose v1.17.0…
#python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一般是容量小的list #导入os模块,模块的概念后面讲到 import os #生成[1,2,3,4,5,6,7,8,9,10] l1 = list(range(1,11)) print("1-10",l1) # 生成[1*1, 2*2,...10*10] l2 = [] for x in…
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # for ... in #通过collections模块的 Iterable 类型判断一个对象是否可以迭代 from collections import Iterable from collections import Iterator #list 有下标可以迭代,dict 没有下标,也可以迭代 d…
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits = ["apple","origin","pear"] print("fruits",fruits) # 取前三个元素 索引从0开始,取到2(不包括2). part0_2 = fruits[0:2] print("par…
最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.python.org/downloads/ 当前最新版本3.6.5 2.安装 下载完成之后,运行exe文件,第一个页面底部,记得勾选add Python to path,这样会自动把Python加到系统变量里面去,然后默认安装即可 我的安装路径: C:\Users\ms\AppData\Local\Prog…
#python 学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #从高阶函数的定义,我们可以知道,把函数作为参数的函数,把函数作为返回值的参数都是高阶函数 #可变参数求和 def calc_sum(*args): sum = 0 for n in args: sum = sum + n return sum #这个函数会立即返回求和结果,如果不要立即返回求和结果,而是需要在计算,可以返回求和函数,当再次调用时才给出计…
# python学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #python 内置sorted()函数 可以对list进行排序 l = [1,4,-7,13] print(sorted(l)) #sort() 函数是一个高阶函数,它可以接收一个key函数来实现自定义的排序 #按绝对值大小排序 print(sorted(l, key = abs)) #字符串排序 ,按照ascii 的大小写比较 sl = ["abc&q…
#python学习笔记 17/07/10 # !/usr/bin/evn python3 # -*- coding:utf-8 -*- import math #函数 函数的 定义 #定义一个求绝对值函数 def abstruct(a): if not isinstance (a, (int, float)): raise TypeError("param must be a int or float type") if a >= 0: return a else: return…
#python学习笔记 17/07/07 # !/usr/bin/evn python3 # -*- coding:utf-8 -*- #r"" 引号当中的字符串不转义 #练习 #打印 '\\\t\n' print(r'\\\t\n') #打印 n = 123 print('n = 123') # 打印 f = 456.789 print("f = 456.789") #打印 s1 = 'Hello, world!' print("s1 = 'Hello,…
之前一直使用python2.7,最近打算学习下python3教程,再此记录下一些要点(未完待续...) 1.缩进 缩进有利有弊.好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab.按照约定俗成的管理,应该始终坚持使用4个空格的缩进. 缩进的另一个好处是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函数,从而得到缩进较少的代码. 缩进的坏处就是“复制-粘贴”功能失效了,这是最坑爹的地方.当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确. 2.数据类型 整数:任意…
一.内置函数补充1.callable()检测传递的参数是否可以被调用.def f1() pass可以被调用f2 = 123不可以被调用2.chr()和ord()chr()将ascii码转换成字符,ord()将字符转换成acsii码在2.7中chr()和ord()用来翻译参数和ascii码的对应关系.例:r = chr(65)print(r)和r = ord("B")print(r)实例:随机验证码import random #用来生成随机数的模块li = []for i in rang…
一.面向对象(初识)由类和方法组成,类里面封装了很多功能,根据这个类,可以创建一个这个类的对象,即对象是根据这个类创建的,以后这个对象要使用某个功能的时候就从这个类里面的找.例:str -功能一 -功能二 -功能三 -...s1 = 'alex'str即是类,s1即是根据这个类创建的一个对象.二.set集合set是一个无序.不重复.可嵌套的集合.1.语法:se = {}或se = set()或se = set((11,22,33,33)),set()时其实是调用这个类里面的__init__方法写…
一.模块初识(接上篇)模块(库)分为两种:1.标准库:不需要安装直接可以导入的库,例:getpass.2.第三方库:必须要下载安装才可以使用.注:编辑的模块文件名不能与导入的模块名重复. 在模块文件中导入其他模块时,程序会先在本目录下查找模块,如果文件本身的名称和导入的模块名相同,则会找到并导入自身. 此操作在python2.x时会报错,在python3.x中可以正常运行.但不建议出现这样的情况.标准库模块:1.sys:import syssys.path:python全局变量的路径,打印此方法…
一.编程语言主要从以下几个角度分类:1.编译型和解释型2.静态语言和动态语言3.强类型定义语言和弱类型定义语言编译型:程序运行前先由负责翻译的程序将代码转换成可执行代码进行执行.例如C/C++.Pascal/Delphi.VB.其优点为运行速度快,对系统要求低,适用于开发操作系统.大型应用程序.数据库系统等.解释型:程序运行时每直行到一条指令就由解释程序将所执行到的代码转换成可执行代码进行执行,如此反复,直至程序直行完毕.例如Java.JavaScript.VBScript.Perl.Pytho…
1.  网站本质:通过socket建立连接. 服务端(网站) 1.  先启动并监听:80端口 4.  获取请求信息 请求头 请求体 5.  处理请求 响应内容: 响应头:\r\n\r\n响应体    响应头会被放到浏览器中.  响应体就是收到的html页面. 客户端(浏览器) 2.  建立连接   IP:端口 3.  发送请求: 请求首行 \r\n    get请求数据在uri里面 请求头\r\n\rn 空行 请求体:  如果是get请求,请求体为空,提交的数据只能在uri里面:如果是post请…
1.       http协议   GET请求:数据放在url后面 POST请求:数据放在请求体中 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--<form action="" me…
1,mac自带的python是2.7版本,我们需要按照python3,这样在terminal下可以直接使用,但是编译打包的时候会默认使用python2.7 解决办法:安装virtualenv,一个管理包的虚拟环境. $ [sudo] pip install virtualenv如果遇到错误:IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/virtualenv.py' 解决:sudo chmod +…
参考http://www.runoob.com/python3/python3-data-structure.html 列表 列表是可修改的. 列表方法让列表可以方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出). 其中用append()方法可以把一个元素添加的堆栈顶:可以用不指定索引的pop()方法把一个元素从堆栈顶释放出来,返回最后一个元素. 列表页可以用作队列,只是队列里是第一加入的元素,第一个取出来:拿列表做队列效率不高.在列表的最后添加或弹出元素…
变量作用域 参考http://www.runoob.com/python3/python3-function.html Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的. 变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称.Python的作用域一共有4种,分别是: L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (Global) 全局作用域 B (Built-in) 内建作用域 以 L –> E –> G…
参考http://www.runoob.com/python3/python3-iterator-generator.html 迭代器 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 迭代器有两个基本的方法:iter() 和 next(). 字符串,列表或元组对象都可用于创建迭代器: list = [1,2,3,4]it = iter(list) # 创建迭代器对象print(next(it)) # 输出迭代器的下一个元素print(next(it))…
参考http://www.runoob.com/python3/python3-loop.html 循环语句 while循环 # !/usr/bin/env python3 n = 100 sum = 0counter = 1while counter <= n: #while循环 sum = sum + counter counter += 1print("1 到 %d 之和为: %d" % (n,sum)) var = 1while var ==1: #表达式永远为true…
# !/usr/bin/python3 斐波那数列,两个元素的总和确定下一个数a,b = 0,1while b < 1000: print(b,end=',') a, b = b, a+bprint("--------------") #if语句number = 7guess = -1print('数字猜谜游戏!')while guess != number: guess = int(input("请输入你猜的数字: ")) if guess == numbe…
学习文章传送门 正则表达式是用来匹配字符串的.只要符合规则的字符串.就可以认为匹配了.否则,这个字符串不合法. \d:可以匹配一个数字     ‘00\d’可以匹配001不能匹配00A \w:可以匹配一个字母或数字    ‘00\w’可以匹配00A .:可以匹配任何字符     ‘py.’可以匹配‘pyc’,‘py!‘,‘py1’ \s:可以匹配一个空格 长度 *:表示任意个字符(包括0个) +:表示至少一个字符 ?:表示0个或一个 {n}:表示n个字符 {n,m}:表示n到m个字符 \d{3}…
email模块用来构造邮件,smtplib模块用来发送邮件. 以QQ邮箱为例 想要在代码中使用QQ邮箱发送邮件,需要先在QQ邮箱-设置-账户中,开启SMTP服务,然后生成授权码.在进行验证账号时,用生成的授权码替换密码 发送纯文字的邮件,需要使用 #!/usr/bin/python3 import smtplib from email.mime.text import MIMEText from email.header import Header sender = '2474xxxx8@qq.…
ConfigParser模块在Python3修改为configparser,这个模块定义了一个ConfigeParser类,该类的作用是让配置文件生效.配置文件的格式和window的ini文件相同,大致如下: [section] name = value name:value 用 = 或 : 来赋值 section可以理解为一个模块,比如登录的时候,这个section可以叫login,下面放着username和password 该模块主要使用模块中RawConfigParser(),Config…