一、cv2的学习 (图片的剪切,缩放,放射,旋转)

cv2.imread(‘1.jpg’,1) 0 灰度图片,1 彩色图像
cv2.imshow(‘image’,img ) 1 表示窗体的名称, 2 表示图片的内容
cv2.waitKey(0) 程序的暂停
cv2.imwrite(‘image3.bmp’,img) #1 要写入的图片名称 2 图片数据
cv2.imwrite(‘555.jpg’,img, [cv2.IMWRITE_JPEG_QUALITY,90]) # 图像质量 范围为【0,100】 且为有损压缩,无法设置透明度
cv2.imwrite(‘11.png’,img, [cv2.IMWRITE_PNG_COMPRESSION,0])

png来说压缩范围是【0,9】

1 像素
2 RGB
3 颜色深度 8bit 0~255 三种颜色 255**3
4 w h 宽 高
1.14 = 长3通道*8bit/8 (B)
(b,g,r)= img[100,100] 像素的写入

初始化 变量显示的时候需要初始化
init = tf.global_variables_initializer()
sess=tf.Session()
with sess:
sess.run(init)
print(see.run(data2))
sess.run(init)
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第1张图片

敞亮和变量的输入
data1 = tf.constant(2.5)
data2 = tf.Variable(10,name = ‘var’, dtype = tf.int32)

本质 tf = tensor +计算图
tensor 数据图
graphs 数据操作 session 运算的交互环境

sess.close #

print(dataCopy.eval(),)

实时改变数据
data1 = tf.plaoceholder(tf.float32)
dataADD = tf.add(data1,data2)
print(sess.run(dataADD, feed_dict = {data1 :6,data2:2))

M行N列 [ 里面,【】几个,表示几行,每个【】里面表示列数据
【【6,6】】

矩阵乘法 tf.matmul
矩阵中对应元素相乘 tf.multiply
print(sess.run(A,B))
空矩阵 tf.zeros([2,3])
全1矩阵 tf.ones([2,3])
填充矩阵 tf.fill([2,3],15)

相同维度的全0矩阵 mat2= tf.zeros_like(mat1)
0-2之间的数据分成相当的10分 tf.linspace(0,2,11)
(-1,2)之间的随机矩阵 tf.random_uniform([2,4],-1,2)

numpy
改,查
data[1,0]=5 改为5
data4= np.ones([2,4])
data4*2 data4+2
定义矩阵
data4 = np.array([1,3,5],[6,4,3])
import matplotlib.pyplot as plt
plt.plot(x,y,‘r’,lw =10) # 1.x 2. y 3. 颜色 4 线条宽度
plt.bar(x, y, 0.5, alpha=1, color = ‘b’) #5 颜色, 4 透明度 的属性 3 柱状图的宽度
plt.show()

图片缩放的方法:最近邻域插值,双线性插值,像素关系重采样,立方插值
des = cv2.resize(img,(dwidth,dheight))
cv2.imshow(‘des’,des)
cv2.waitKey
最近邻域插值: (如有小数,取最近的整数)
目标图像X =原x *(原图 行/目标 行)
目标图像y=原y *(原图 行/目标 行)

一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第2张图片
双线性插值
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第3张图片
A1 =20% * 上 + 80% *下
B1 = 30% 左边 + 70 *邮编
1、 最终点= A1 30% + A2 70%
2、 最终点= B1 30% + B2 70%
导入图片;图片的info信息,空白模板;xy.
import cv2
import numpy as np
img = cv2.imread (‘1.jpg’,0)
imgInfo = img.shape

height = imgInfo[0]
width = imgInfo[1]
dheight = int(height /2)
dwidth = int(width/2)

#c创建空白模板
det = np.zeros((dheight,dwidth,3),np.uint8) #到底是先宽还是先高

for i in range(0,dheight):
for j in range (0,dwidth):
inew = int(i*(height1.0/dheight) )
jnew = int(j
(width*1.0/dwidth))
det[i,j] = img[inew, jnew]

cv2.imshow(‘dst’,det)
cv2.waitKey(0)

图片剪切
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第4张图片
dst = img[100:200,100:300]
cv2.imshow(‘imge’,dst)
cv2.waitKey(0)

图片的移位
##移位矩阵
mat = np.float32([[1,0,100],[0,1,200]])
dst =cv2.warpAffine(img, mat, (height,width)) #1 图像数据,移位矩阵,图片INFO信息
如何通过移位矩阵实现图像移位 拆分22 21
通过API实现

一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第5张图片
通过像素移动
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第6张图片

图片镜像
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第7张图片
图像的高度,宽度和深度信息
height = imgInfo[0]
width= imgInfo[1]
deep= imgInfo[2] 表示每个像素由几个颜色组成
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第8张图片
实现了上下翻转,并中间加了一条红色的线

图片的仿射变换:位移,旋转,缩放
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第9张图片
图片旋转
一、cv2的学习 (图片的剪切,缩放,放射,旋转)_第10张图片
产生旋转矩阵 matRotate = cv2.getRotationMatrix2D(height0.5,width0.5, 45, 0.5) #1 中心点 2 旋转角度 3 缩放系数

你可能感兴趣的:(python)