【AI达人养成营】
知识总结:
1.基础数据类型:整形(int)、浮点型(float)、复数型(complex)
2.组合数据类型:元组(tuple),用()来表示,初始化后不可更改;列表(list),用[]来表示,可添加或删除其中的元素;字典[dict]:””,””来表示key和value;集合(set),set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
1、定义类
def __init__(self,xxxx)
2、继承
3、封装
4、打开文件
f=open()
5、读取文件
f=readline()
6、文件处理模型
f = open('work/train_data_cor.txt')
line = f.readline()
print(line)
line = f.readline()
print(line)
f.close()
james,2004-5-21,2.34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22
julie,2006-5-9,2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21
open() 为bif(内置函数),参数有多个,必须的是文件路径。 返回的一个文件对象。
file.readline(),读取文件中的一行。
OpenCV库进阶操作
import math
import random
import numpy as np
%matplotlib inline
import cv2
import matplotlib.pyplot as plt
# 创建一副图片
img = cv2.imread('cat.png')
# 转换颜色通道
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
通道分割与合并
彩色图的BGR三个通道是可以分开单独访问的,也可以将单独的三个通道合并成一副图像。分别使用cv2.split()和cv2.merge():
In [ ]
# 创建一副图片
img = cv2.imread('lena.jpg')
In [ ]
# 通道分割
b, g, r = cv2.split(img)
In [ ]
# 通道合并
img = cv2.merge((b, g, r))
In [ ]
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
图像几何变换
实现旋转、平移和缩放图片
OpenCV函数:cv2.resize(), cv2.flip(), cv2.warpAffine()
缩放图片
缩放就是调整图片的大小,使用cv2.resize()函数实现缩放。可以按照比例缩放,也可以按照指定的大小缩放: 我们也可以指定缩放方法interpolation,更专业点叫插值方法,默认是INTER_LINEAR
翻转图片
镜像翻转图片,可以用cv2.flip()函数: 其中,参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。
dst = cv2.flip(img, 1)
plt.imshow(dst)
平移图片
要平移图片,我们需要定义下面这样一个矩阵,tx,ty是向x和y方向平移的距离:
M=[1 0 tx0 1 ty]
平移是用仿射变换函数cv2.warpAffine()实现的:
In [ ]
# 平移图片
import numpy as np
# 获得图片的高、宽
rows, cols = img.shape[:2]
In [ ]
# 定义平移矩阵,需要是numpy的float32类型
# x轴平移200,y轴平移500
M = np.float32([[1, 0, 100], [0, 1, 500]])
# 用仿射变换实现平移
dst = cv2.warpAffine(img, M, (cols, rows))
In [ ]
plt.imshow(dst)
绘图功能
绘制各种几何形状、添加文字
OpenCV函数:cv2.line(), cv2.circle(), cv2.rectangle(), cv2.ellipse(), cv2.putText()
绘制形状的函数有一些共同的参数,提前在此说明一下:
img:要绘制形状的图片
color:绘制的颜色
彩色图就传入BGR的一组值,如蓝色就是(255,0,0)
灰度图,传入一个灰度值就行
thickness:线宽,默认为1;对于矩形/圆之类的封闭形状而言,传入-1表示填充形状
lineType:线的类型。默认情况下,它是8连接的。cv2.LINE_AA 是适合曲线的抗锯齿线。
通过这一个多月的学习,了解了很多python的用法,对它有了些许的认识,虽然基础不牢,但也学了一点,有所帮助。最后,感谢这门课程的老师,助教和各位愿意分享的同学。