当前位置:网站首页>CV代码细节总结(一)
CV代码细节总结(一)
2022-08-08 06:23:00 【悬鱼铭】
提示:CV代码细节总结一
目录
前言
看代码的总结
一、Python:skimage、PIL、openCV读取的默认格式和通道顺序?
示例:
(1)skimage.io.imread
H×W×C,RGB,数据类型 numpy.ndarray
(2)PIL.Image.open
H×W×C,RGB,数据类型 PIL.JpegImagePlugin.JpegImageFile
通过 numpy.asarray(image_pil) 可转成 numpy.ndarray
(3)cv2.imread
H×W×C,BGR,数据类型 numpy.ndarray
通过 cv2.cvtColor(image_cv2, cv2.COLOR_BGR2RGB) 可转成 RGB
二、Python PIL.Image获取图像像素时, 图像的原点及x,y的方向?
代码如下(示例):
是以图像左上角为原点
x方向为从左往右
y方向为从上往下
|————————> x
|
|
V
y
三、np.linalg.norm()用法?
求范数方法:
x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)
① x: 表示矩阵(也可以是一维)
② ord:范数类型
默认二范数: ( x 2 ) + ( y 2 ) \sqrt{(x^2) + (y^2)} (x2)+(y2)
# Numpy.sqrt() 函数计算给定数组中每个元素的平方根。
# numpy.square() 平方
四、arctan是什么意思?
arctan 就是反正切的意思,例如:tan45度=1,则
arttan1=45度,就是求“逆”的运算,就好比乘法的“逆”运算是除法一样。
类似的还有arcsin就是反正弦
sin30度=1/2,则arcsin1/2=30度
此外,还有arccos 和arccot 等等……
五、什么是切片操作?
在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素,这里的范围不是狭义上的连续片段。下面的代码初步展示了切片索引的力量。
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:5]
[0, 1, 2, 3, 4]
>>> a[5:]
[5, 6, 7, 8, 9]
>>> a[2:8] # 左包含 右不包含
[2, 3, 4, 5, 6, 7]
>>> a[::2]
[0, 2, 4, 6, 8]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
六、torch.cat()函数?
** cat()**
函数目的: 在给定维度上对输入的张量序列seq 进行连接操作。
outputs = torch.cat(inputs, dim=0) → Tensor
参数
inputs : 待连接的张量序列,可以是任意相同
Tensor类型的python 序列dim : 选择的扩维, 必须在
0到len(inputs[0])之间,沿着此维连接张量序列。
重点
输入数据必须是序列,序列中数据是任意相同的
shape的同类型tensor维度不可以超过输入数据的任一个张量的维度
import torch
# x1
x1 = torch.tensor([[11,21,31],[21,31,41]],dtype=torch.int)
x1.shape # torch.Size([2, 3])
# x2
x2 = torch.tensor([[12,22,32],[22,32,42]],dtype=torch.int)
x2.shape # torch.Size([2, 3])
'inputs为2个形状为[2 , 3]的矩阵 '
inputs = [x1, x2]
print(inputs)
print('*' * 30)
print(len(inputs))
''' [tensor([[11, 21, 31], [21, 31, 41]], dtype=torch.int32), tensor([[12, 22, 32], [22, 32, 42]], dtype=torch.int32)] ****************************** 2 '''
torch.cat(inputs, dim=0).shape # torch.Size([4, 3])
torch.cat(inputs, dim=1).shape # torch.Size([2, 6])
七、 torch.unsqueeze 详解?
torch.unsqueeze(input, dim, out=None)
- 作用:扩展维度
返回一个新的张量,对输入的既定位置插入维度 1
- 注意: 返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。
如果dim为负,则将会被转化dim+input.dim()+1
- 参数:
tensor (Tensor)– 输入张量dim (int)– 插入维度的索引out (Tensor, optional)– 结果张量
八、torch.sign
torch.sign(input, out=None)
说明:符号函数,返回一个新张量,包含输入input张量每个元素的正负(大于0的元素对应1,小于0的元素对应-1,0还是0)
参数:
- input(Tensor) – 输入张量
- out(Tensor,可选) – 输出张量
a = torch.randn(4)
a
tensor([ 0.7734, 0.5677, -0.3896, 1.9878])
torch.sign(a)
tensor([ 1., 1., -1., 1.])
九、模型可视化之 pytorch-summary
- 安装
pip install torchsummary
from torchsummary import summary
summary(your_model, input_size=(channels, H, W))
边栏推荐
猜你喜欢

Distributed voltage regulation using permissioned blockchains and extended contract net protocol优化效率

轮播图-js

3.SQL底层执行原理

hyperledger-fabric documention official documentation

Mac下按装php的MongoDB扩展

三.Redis 的发布和订阅

Market research report - the food additive industry output of 9.74 million tons

mycmsms靶机wp

Scrapy_Redis 分布式处理

500道Golang 常⻅⾯试题⽬解析
随机推荐
CUDA10安装支持gpu的tensorflow版本
Mysql(四)
MongoDB常用命令整理
用原生js写轮播图(并实现手动及自动切换图片)
MySQL数据库和数据表的增删改查基础
Yii2中对MongoDB的配置与问题处理
Flask学习笔记
bugku 速度要快
ER图是什么?
Lightning Sixteen Whip
消费品行业报告:化妆品容器市场现状研究分析与发展前景预测
node模块
Redis实战篇
Plant spice market research: China's market development status and business model analysis in 2022
MySQL基础
MongoDB中的聚合-管道
2022秋春招/提前批面经分享总结(字节、腾讯、阿里)
[WUSTCTF2020]朴实无华1
2022年天然橡胶市场供需与价格走势
Distributed voltage regulation using permissioned blockchains and extended contract net protocol优化效率