阶段一
初步学习opencv库
#01、图片的展示
#1 引入opencv 2 API的使用 3 stop
import cv2
img1 = cv2.imread('image01.jpg',1)#read image 1、image'sname 2、color 1:colourful 0:gray
img2 = cv2.imread('image01.jpg',0)#注意不要将后缀掉了
cv2.imshow('image01',img1)#1、name win 2、img
cv2.imshow('image02',img2)
cv2.waitKey(0)
#02、图片的写入
import cv2
img = cv2.imread('image01.jpg',1)
cv2.imwrite('image011.jpg',img)# 1、写入文件的名称 2、数据 为解析后image的源数据
#03、图像的质量_模块1
#对图片jpg,png的压缩,jpg图片质量压缩的范围0-100
#jpg有损压缩 png无损压缩,不会改变图片的透明度
import cv2
img = cv2.imread('image01.jpg',1)
cv2.imwrite('imageTest.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,50])#JPG的参数范围为0-100
#03、图像的质量_模块2
# png无损压缩,不会改变图片的透明度
import cv2
img = cv2.imread('image01.jpg',1)
cv2.imwrite('imageTest.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])
#注意jpg和png的函数不同
#jpg 数字越小,压缩比越高,图片质量损失越厉害,压缩比0-100
#png 数字越高,压缩比越高,数值范围:0-9
#04、像素操作
import cv2
img = cv2.imread('image01.jpg',1)
(b,g,r)=img[100,100]
print(b,g,r)#b g r模式
#10 100 --- 110 100
for i in range (1,100):
img[10+i,100] = (255,0,0)
cv2.imshow('image',img)
cv2.waitKey(0)#1000 ms 经过1秒后,程序将继续执行下去
阶段二
Tensorflow基础知识入门学习
# 01、tf常量变量
# opencv 基础到 tensorflow语法入门
# 学习方法 类比 语法 API 原理
'''所有的变量都要初始化才能用'''
# 在view --> Toggle Line Numbers 可以显示行标
import tensorflow as tf
data1 = tf.constant(2,dtype = tf.int32)#不能将2改成小数
data2 = tf.Variable(10,name = 'var')
#Tensor("Const_1:0", shape=(), dtype=float32)
#
print(data1)
print(data2)#不能使用这个print(var)
'''
sess = tf.Session()
print(sess.run(data1))
init = tf.global_variables_initializer() #变量初始化
sess.run(init)
print(sess.run(data2))
sess.clse() #关闭程序
# 本质 tf = tensor + 计算图
# tensor 数据
# op
# graphs数据操作
# session
'''
init = tf.global_variables_initializer()
sess = tf.Session()
with sess: #sess使用完之后不用关闭,因为中间有变量
sess.run(init)
#02、tf四则运算
#学习内容:加:add(),减:subtract(),乘:multiply(),除:divide() 里面的参数好像只能是一个
#其中好注意此处的乘法是:multiply(),后面还会学到矩阵的乘法:matmul()
import tensorflow as tf
data1 = tf.constant(6)
data2 = tf.Variable(2)
data3 = tf.constant(4)
dataAdd = tf.add(data1,data2)
dataCopy = tf.assign(data2,dataAdd) #dataAdd --> data2
dataMul = tf.multiply(data1,data2)
dataSub = tf.subtract(data1,data2)
dataDiv = tf.divide(data1,data2)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(dataAdd))
print(sess.run(dataMul))
print(sess.run(dataSub))
print(sess.run(dataDiv))
print('sess.run(dataCopy)',sess.run(dataCopy))
print('sess.run(dataCopy.eval())',dataCopy.eval()) #8 --->data2
print('tf.get_default_session().run(dataCopy)',tf.get_default_session().run(dataCopy))
print('end!')
#03、tf矩阵基础01 模块一
#placehold
#不要把tf.忘记,tf.Session()
import tensorflow as tf
data1 = tf.placeholder(tf.float32)
data2 = tf.placeholder(tf.float32)
dataAdd = tf.add(data1,data2)
with tf.Session() as sess:
print(sess.run(dataAdd,feed_dict={data1:6,data2:2}))
#1 dataAdd 2 data (feed_dict = {参数1:6,参数2:2})
print('endl!')
#03、tf矩阵基础01 模块二
#学习内容:矩阵的定义
# 类比学习 数组 M行N列[] 内部[] [里面 列数据] [] 中括号整体 行数
#出现的问题:1、导入库的时候库的名字打错了tensorflow 2、在输出的时候将中括号打成了括号,并且掉了逗号“,”
import tensorflow as tf
data1 = tf.constant([[6,6]])
data2 = tf.constant([[2],
[2]])
data3 = tf.constant([[3,3]])
data4 = tf.constant([[1,2],
[3,4],
[5,6]])
print(data4.shape) #打印矩阵的维度
with tf.Session() as sess:
print(sess.run(data4)) #打印整体
print(sess.run(data4[0]))#打印某一行
print(sess.run(data4[:,0]))#打印某一列
print(sess.run(data4[0,1]))#打印某个值,第一行 第二个 下标都是从0开始
#04、tf矩阵基础02
#学习内容:矩阵的运算 1、矩阵加法 2、矩阵的乘法 3、矩阵的类数据的乘法
import tensorflow as tf
data1 = tf.constant([[6,6]])
data2 = tf.constant([[2],
[2]])
data3 = tf.constant([[3,3]])
data4 = tf.constant([[1,2],
[3,4],
[5,6]])
matMul = tf.matmul(data1,data2)#矩阵乘法
matMul2 = tf.multiply(data1,data2)#普通乘法
matAdd = tf.add(data1,data3)
with tf.Session() as sess:
print(sess.run(matMul))#1维 M=1 N2. 1x2(MK) 2x1(KN) = 1
print(sess.run(matMul2))#1x2 2x1 =2x2
print(sess.run(matAdd))#1行2列
print(sess.run([matMul,matAdd]))#打印多个变量
#05、tf矩阵基础03 模块一
#学习内容:
# 特殊矩阵:零矩阵,全一矩阵,矩阵的填充
#问题:1、不要忘记在两个中括号[],[]之间的逗号“,”
import tensorflow as tf
mat0 = tf.constant([[0,0,0],[0,0,0]])
mat1 = tf.zeros([2,3])#2x3 零矩阵
mat2 = tf.ones([4,3])#4x3 全一矩阵
mat3 = tf.fill([2,4],15)#2x4 矩阵填充 15
with tf.Session() as sess:
print(sess.run(mat0))
print(sess.run(mat1))
print(sess.run(mat2))
print(sess.run(mat3))
#05、tf矩阵基础03 模块二
#学习内容:
# 1、零矩阵的另外一种表述方式:zeros_like 类比还有ones_like,但只有这几个
# 2、随机矩阵 tf.random_uniform
import tensorflow as tf
mat1 = tf.constant([[2],[3],[4]])
mat2 = tf.zeros_like(mat1)
mat3 = tf.linspace(0.0,2.0,11)
mat4 = tf.ones_like(mat1)
mat5 = tf.random_uniform([2,3],-1,3)#随机矩阵 2x3 数值在-1~3之间
with tf.Session() as sess:
print(sess.run(mat2))
print(sess.run(mat3))
print(sess.run(mat4))
print(sess.run(mat5))
#06、tf模块Numpy的使用
#类比于数据库的使用 C U R D 增删改查 矩阵的增删改查
#在使用zeros 和noes时不能将中括号掉了
import numpy as np
data1 = np.array([1,2,3,4,5])
print(data1)
data2 = np.array([[1,2],
[3,4]])
print(data2)
#打印数组的维度
print(data1.shape,data2.shape)
#zero ones
print(np.zeros([2,3]),np.ones([2,2]))
# 改查 -->直接修改某个值
data2[1,0] = 5
print(data2)
#查看 -->直接print
print(data2[1,1])
#基本运算
data3 = np.ones([2,3])
print(data3*2)#对应相乘
print(data3/3)#对应相除
print(data3+2)#对应每个元素都加2
#矩阵的加法和乘法
data4 = np.array([[1,2,3],[4,5,6]])
print(data3+data4)
print(data3*data4)#对应元素相乘
# 07、tf模块matplotlib的使用
# matplotlab 可以绘制 折线 饼状 柱状图
# 饼状用得少
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5,6,7,8,9])
y = np.array([3,5,2,6,9,6,1,10,15])
# 折线
#plt.plot(x,y,'r')# 1 x 2 y 3 color
plt.plot(x,y,'r',lw=1)# 4 the width of line
# 柱状
y = np.array([13,10,9,12,4,9,11,12,14])
plt.bar(x,y,0.5,alpha = 0.3,color = 'y')# 1 x 2 y 3 柱状图宽度所占比0-1 4 透明度(png) 5 color
plt.show()
感谢各位朋友好友的支持。
记录点滴成长!