#cv基本操作
import cv2
# 1.图片读取与展示
img = cv2.imread('image0.jpg',1)
cv2.imshow('image',img)
cv2.waitKey (0)
#2.1图片写入即保存
img = cv2.imread('image0.jpg',1)
cv2.imwrite('image1.jpg',img) #返回一个True
#2.2.图片保存质量设置
img = cv2.imread('image0.jpg',1)
cv2.imwrite('imageTest.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,50] ) #jpg格式有损压缩,50表示压缩比,其数值表示范围0-100,数值越高压缩比就越低
img = cv2.imread('image0.jpg',1)
cv2.imwrite('imageTest.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0]) #png格式与jpg相反,无损,压缩比值也表示相反的意思
#3.像素操作
img = cv2.imread('image0.jpg',1)
(b,g,r) = img[100,100]
print(b,g,r)# bgr cv中以bgr顺序表示三原色!!
#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
#tensorflow 基本操作
import tensorflow as tf
#1.定义常量,变量
data1 = tf.constant(2,dtype=tf.int32)
data2 = tf.Variable(10,name='var')
sess = tf.Session()
print(sess.run(data1))
init = tf.global_variables_initializer() #变量需要初始化
with sess: # with 关键字 简化sess.close()操作
sess.run(init)
print(sess.run(data2))
#2.四则运算
#常量四则
data1 = tf.constant(6)
data2 = tf.constant(2)
dataAdd = tf.add(data1,data2)
dataMul = tf.multiply(data1,data2)
dataSub = tf.subtract(data1,data2)
dataDiv = tf.divide(data1,data2)
with tf.Session() as sess:
print(sess.run(dataAdd))
print(sess.run(dataMul))
print(sess.run(dataSub))
print(sess.run(dataDiv))
#变量四则
data1 = tf.constant(6)
data2 = tf.Variable(2)
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))#8->data2
print('dataCopy.eval()',dataCopy.eval())#8+6->14->data = 14
print('tf.get_default_session()',tf.get_default_session().run(dataCopy))
#输出结果为:
8
12
4
3.0
sess.run(dataCopy) 8
dataCopy.eval() 14
tf.get_default_session() 20
#3.申明未知变量
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}))
#4 矩阵基础
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)
with tf.Session() as sess:
print(sess.run(data4)) #打印整体
print(sess.run(data4[0]))# 打印某一行
print(sess.run(data4[:,0]))#MN 列 结果为[1 3 5]
print(sess.run(data4[0,1]))# 1 1 MN = 0 32 = M012 N01
print(sess.run(matMul))#1 维 M=1 N2. 1X2(MK) 2X1(KN) = 1 结果为:[[24]]
print(sess.run(matMul2))# 1x2 2x1 = 2x2 结果为:[[12,12,12,12]]
#生成矩阵函数
mat1 = tf.zeros([2,3]) #全0
mat2 = tf.ones([3,2]) #全1
mat3 = tf.fill([2,3],15) #全15
###########
mat1 = tf.constant([[2],[3],[4]])
mat2 = tf.zeros_like(mat1)
mat3 = tf.linspace(0.0,2.0,11)
mat4 = tf.random_uniform([2,3],-1,2) #参数1:2行3列的矩阵,参数2,3:表随机范围2到3
#结果为:
[[0]
[0]
[0]]
[ 0. 0.2 0.40000001 0.60000002 0.80000001 1.
1.20000005 1.39999998 1.60000002 1.80000007 2. ]
[[ -1.66177750e-04 7.87446260e-01 -4.10951853e-01]
[ -9.58950400e-01 1.97116375e-01 -2.69421697e-01]]
#numpy模块的使用
data1 = np.array([1,2,3,4,5])
data2 = np.array([[1,2], [3,4]]) #生成矩阵,操作与tf模块差不多
#matplotlib 使用
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([3,5,7,6,2,6,10,15])
#绘制折线图
plt.plot(x,y,'r')# 折线 参数1: 横轴 参数2:y轴 参数 3: color
plt.plot(x,y,'g',lw=10)# 4 line的宽度
#绘制柱状图
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([13,25,17,36,21,16,10,15])
plt.bar(x,y,0.2,alpha=1,color='b')# 5 color 4 透明度 3 0.9
plt.show()
2.图片的几何变换
#1.图片缩放
import cv2
img = cv2.imread('image0.jpg',1)
imgInfo = img.shape
height = imgInfo