Oencv+tensorflow 图片处理的学习笔记

#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
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值