np.unique()
该函数是去除数组中的重复数字,并进行排序之后输出。计算label个数时适用。
from colletions import Counter
求数组中每个数字出现了几次
from collections import Counter
a = [1,4,2,3,2,3,4,2]
b = Counter(a) #求数组中每个数字出现了几次
print(b)
输出
Counter({2: 3, 4: 2, 3: 2, 1: 1})
cv2.GaussianBlur()
Opencv高斯模糊
#(5, 5)表示高斯矩阵的长与宽都是5,标准差取0
blur=cv2.GaussianBlur(img,(5,5),0)
opencv 图片叠加
1.cv2.add(img1, img2)
使用cv2.add()将两个图像相加,可以使用numpy中的矩阵加法来实现。但是在opencv中加法是饱和操作,也就是有上限值,numpy会对结果取模。
2.cv2.addWeighted(img1, a, img2, b, c)
实际上也是加法,只不过是按比例混合起来,有不同的权重 ,给人一种混合的或者透明的感觉
公式如下
output = img1a + IMG2b + c
opencv 直方图
1.cv2.calcHist(image,channels,mask,histSize,ranges)
绘制直方图
2.cv2.equalizeHist(img)
均衡化图片的直方图
opencv 旋转图片
cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]])
src - 输入图像。
M - 变换矩阵。
dsize - 输出图像的大小。
flags - 插值方法的组合(int 类型!)
borderMode - 边界像素模式(int 类型!)
borderValue - (重点!)边界填充值; 默认情况下,它为0。
M通过**rot_mat = cv2.getRotationMatrix2D(center, rotate_angle, scale)**得到
opencv缩放图片
cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)
scr:原图
dsize:输出图像尺寸
fx:沿水平轴的比例因子
fy:沿垂直轴的比例因子
interpolation:插值方法
conv2d函数
进行输入张量与设定卷积核的卷积操作。
tf.nn.conv2d(
input,
filter,
strides,
padding,
use_cudnn_on_gpu=True,
data_format='NHWC',
dilations=[1, 1, 1, 1],
name=None
)
其中需要格外注意strides参数,这个参数有四个值[b,h,w,c]
分别代表对batch的步长、对高度的步长、对宽度的步长、对通道的步长。
tf.nn.max_pool()
tf.nn.max_pool(value, ksize, strides, padding, name=None)
***ksize***规定池化窗口大小,四维向量,同strides,[b,h,w,c]
tf.nn.dropout()
Dropout就是在不同的训练过程中随机扔掉一部分神经元,防止或减轻过拟合。
tf.nn.dropout(
x,
keep_prob,
noise_shape=None,
seed=None,
name=None
)
其中:
x:指输入,输入tensor
keep_prob: float类型,每个元素被保留下来的概率,设置神经元被选中的概率,在初始化时keep_prob是一个占位符, keep_prob = tf.placeholder(tf.float32) 。tensorflow在run时设置keep_prob具体的值,例如keep_prob: 0.5
noise_shape : 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape
seed : 整形变量,随机数种子
name:指定该操作的名字
tf.one_hot()
tf.one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None)
indices表示输入的多个数值,通常是矩阵形式;depth表示输出的尺寸。
由于one-hot类型数据长度为depth位,其中只用一位数字表示原输入数据,这里的on_value就是这个数字,默认值为1,one-hot数据的其他位用off_value表示,默认值为0。
tf.one_hot()函数规定输入的元素indices从0开始,最大的元素值不能超过(depth - 1),因此能够表示depth个单位的输入。若输入的元素值超出范围,输出的编码均为 [0, 0 … 0, 0]。
indices = 0 对应的输出是[1, 0 … 0, 0], indices = 1 对应的输出是[0, 1 … 0, 0], 依次类推,最大可能值的输出是[0, 0 … 0, 1]。
tf.argmax(input,axis)
根据axis取值的不同返回每行或者每列最大值的索引。
axis=0:每行的最大值的索引
axis=1:每列~
equal(x, y, name=None)
逐个元素的判断两个array的一致与否,相同则在其位置返回True,x和y必须维度相同。
返回形式示例:
[[ True False True]
[False True False]]
tf.cast()
cast(x, dtype, name=None)
第一个参数 x: 待转换的数据(张量)
第二个参数 dtype: 目标数据类型
第三个参数 name: 可选参数,定义操作的名称