Pytorch(2)-numpy-opencv-pytorch基本操作

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()

你可能感兴趣的:(PyTorch,pytorch,opencv,python)