1.numpy
2.opencv
3.pytorch
1.numpy
import numpy as np
#1.定义数组 打印维度
a = np.array([1, 2, 3, 4, 5, 6])
b = np.array([8, 7, 6, 5])
#2.改变数组维度
aa = np.reshape(a, (3, 2)) #一维改成3行2列
bb = np.reshape(b, (1, 1, 4)) #一维变3维
#print(bb, bb.shape)
b1= np.squeeze(bb) #3维变成1维
#3.转置
aaa = aa.transpose((1, 0))
#4.最大值
index = np.argmax(a) #1.一维数组 返回的是最大值的坐标
m_max = a[index] #输出最大值
indexmulti = np.argmax(bb) #2.二维或者多维数组 其中只有一组有值
m_maxmulti = bb[0][indexmulti] #多维数组
#print(m_maxmulti)
a1 = np.reshape(aa, -1) #3.多维数组,多维值,转1维后找最大值
#5.创建数组
m1 = np.zeros((6, 6), dtype=np.uint8) #全0 等份
m2= np.linspace(0,100,10) #一维
mm2 =np.linspace((0,5),(20,30),100) #二维 ((初始值1,初始值2),(终止值1,终止值2), 100等份
print(m2)
2.opencv
import cv2 as cv
import numpy as np
#1.加载图片
image = cv.imread("D:/image/lena.jpg")
cv.imshow("input", image)
h, w, c = image.shape
print(h, w, c)
blob =np.transpose(image, (2, 0, 1))
print(blob.shape)
#2.转成浮点数
fi = np.float32(image)/255.0
cv.imshow("fi",fi)
#3.灰度图像
gray=cv.cvtColor(image.cv.COLOR_BGR2GRAY)
cv.imshow("gray", image[:, :, 2]) #获取3个通道的数据(512,512)
cv.imshow("color", image[:,:,:]) #彩色图像
#4.放大 缩小
dst = cv.resize(image, (256, 256))
cv.imshow("zoom out", dst) #out 远,小;in 近,大
#5.视频
cap=cv.VideoCapture(0)
while True:
ret, frame=cap.read()
if ret is not True: #如果没读到 返回
break
cv.imshow("frame",frame) #如果读到了显示
cv.waitKey(1)
if c == 27: #如果读到了,c为返回值 27就是esc键
break
#6.读文件
cap=cv.VideoCapture(“D:/images/video/fbb.avi”)
while True:
ret, frame=cap.read()
if ret is not True: #如果没读到 返回
break
cv.imshow("frame",frame) #如果读到了显示
cv.waitKey(1) #每帧之间停顿1ms 如果想让视频变慢就把这个值改大
if c == 27: #如果读到了,c为返回值 27就是esc键
break
#7截取框大小
box = [50,100,100,100] # x, y,w,h 左上角坐标和宽高
roi = image[100:200,50:150, :] #截取图像 左上角坐标;右下角坐标; 高度,宽度,通道数;3通道截取 灰度图像就没有最后的了
cv.imshow("roi",roi)
#8.创建空白图像
mgrey = np.zeros((512, 512), dtype=np.uint8) #显示一张黑色图像的
mcolor = np.zeros((512, 512,3), dtype=np.uint8) #彩色的
mcolor[:,:]=(255,0,0) #此为BGR顺序
gray=cv.cvtColor(image,cv.Color_BGR2GRAY) #顺序转换
cv.imshow("mgrey",mgrey)
cv.imshow("mcolor",mcolor)
#9.把box 绘制到图片上
#绘制框
cv.rectangle(image,(200,200),(400,400),(0,0,255),2,8)
#左上角,右下角,颜色,线宽为2,类型为8
#截取区域
# 图像显示
cv.waitKey(0)
cv.destroyAllWindows()
3.pytorch
import torch
#1.定义变量
x=torch.empty(2,2) #定义了一个2*2的矩阵 值为0
xrand=torch.randn(2,2) #随机初始化
x0=torch.zeros(3,3) #初始化为0
xmy= torch.tensor([1,2,3,4,5,6,7,8,9,0]) #定义一个一维数组
print(x)
#2.相加
y1=torch.tensor([1,2,3,4,5,6,7,8,9,0])
y2=torch.tensor([11,12,13,14,15,16,17,18,19,10])
sum=y1.add(y2)
#3.维度变换
x=x.view(-1,4) # 2*2-> 1*4维的
y=y.view(-1,9) #3*3 ->1*9
mx_size=x.size() #维度信息 相当于 shape
#4.np和torch的数据转换
nx=x.numpy()
ny=y.numpy()
x2=torch.form_numpy(nx.reshape((2,2))) #转换成二维的
#5.using CUDA/GPU
if torch.cuda.is_available(): #是否有CUDA这个硬件
result = x.cuda() +y.cuda()