numpy.linspace使用详解
在指定的间隔内返回均匀间隔的数字。
**np.random.seed()**的作用
当我们设置相同的seed时,每次生成的随机数也相同(相当于给这一组的随机数弄个名字)如果不设置seed,则每次生成的随机数都会不一样,设置的seed()值仅一次有效
np.random.shuffle(x):用处
在原数组上进行,随机打乱顺序,无返回值。
np.random.permutation(x):用处
创建一个新数组本身都是打乱顺序的数组
**np.random.normal()**的意思是一个正态分布
参数loc(float):正态分布的均值,对应着这个分布的中心。
参数scale(float):正态分布的标准差,对应分布的宽度scale越大,正态分布的曲线越矮胖,scale越小,曲线越高瘦。
参数size(int 或者整数元组):输出的值赋在shape里,默认为None
np.vstack(tup)使用
沿着竖直方向将矩阵堆叠起来。。
np.hstack(tup)
沿着水平方向将数组堆叠起来。
np.argsort
从中可以看出argsort函数返回的是数组值从小到大的索引值
Python-OpenCV的putText()函数:在图片上添加文字
cv2.putText(I,‘there 0 error(s):’,(50,150),cv2.FONT_HERSHEY_COMPLEX,6,(0,0,255),25)
1
各参数依次是:照片/添加的文字/左上角坐标/字体/字体大小/颜色/字体粗细
os.path.exists()的用法
shanbinv587 2018-09-17 12:01:41 13051 收藏 1
展开
os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0
bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0
bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,11=0,10=1,01=1,00=0
bitwise_not是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,1=0,0=1
bitwise_and、bitwise_or、bitwise_xor、bitwise_not这四个按位操作函数。
void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src2
void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 | src2
void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 ^ src2
python模块collections中namedtuple()的理解
Python中存储系列数据,比较常见的数据类型有list,除此之外,还有tuple数据类型。相比与list,tuple中的元素不可修改,在映射中可以当键使用。tuple元组的item只能通过index访问,collections模块的namedtuple子类不仅可以使用item的index访问item,还可以通过item的name进行访问。可以将namedtuple理解为c中的struct结构,其首先将各个item命名,然后对每个item赋予数据
知识点清单(个人觉得需要的就总结一下)
方向梯度直方图特征(Histogram of Oriented Gradient, HOG):
是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子
通过计算和统计图像局部区域的梯度方向直方图来构成特征更直观的看出差别
支持向量机(support vector machines, SVM):
是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器
SVM的的学习算法就是求解凸二次规划的最优化算法。
细胞单元(cell):
整个图像分成单个小个的连通区域
每个细胞单元都包含多个像素点的梯度的或边缘的方向直方图
单元块(block):
一个单元块中包含好多个细胞单元
包含细胞单元方便对比度归一化操作
归一化:
1)把数据变成(0,1)或者(1,1)之间的小数。
目的:主要是为了数据处理方便提出来的,
2)把有量纲表达式变成无量纲表达式,
目的便于不同单位或量级的指标能够进行比较和加权。
对比度归一化:
计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化
让模型能对光照变化和阴影获得更好的效果。
图像灰度化:
灰度图像是R、G、B三个分量相同的一种特殊的彩色图像
图像灰度化处理作为图像处理的预处理步骤,为之后的图像分割、图像识别和图像分析等上层操作做准备。
(个人写的博客,参考各个大佬的自我感觉挺详细的)
https://blog.csdn.net/a1111111111ss/article/details/106311000
Gamma校正原理及实现
越小灰度值越大
越大灰度值越小
(个人写的博客,参考各个大佬的自我感觉挺详细的)
https://blog.csdn.net/a1111111111ss/article/details/106310758
Matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象。每一个这样的窗口都有一些属性,例如窗口的尺寸、位置,等等
subplots是设置子图的,这句话表示大图含有2行1列共2个子图,正在绘制的是第一个
关于axis
1.axis([xmin xmax ymin ymax]): [ ]中分别给出x轴和y轴的最大值、最小值。( sets scaling for the x- and y-axes on the current plot.)
2.axis([xmin xmax ymin ymax zmin zmax]):[ ]中分别给出x轴、y轴、z轴的最大值、最小值。(sets the scaling for the x-, y- and z-axes on the current 3-D plot)
3.axis equal 或axis(‘equal’) :表示x轴和y轴的单位长度相同。(sets the aspect ratio so that equal tick mark increments on the x-,y- and z-axis are equal in size)
4.axis square 或 axis(‘square’): 显示的坐标系呈正方形。(makes the current axis box square in size.)
5.axis off 或 axis(‘off’) :关闭所有坐标轴线、刻度标记和标签。(turns off all axis labeling, tick marks and background)
6.axis auto:基于x、y和z的最大值和最小值来自动设置坐标轴的范围。用户可以只限定某一个坐标轴,如:axis 'auto x'用来限定x轴的范围;axis 'auto yz'用来限定y轴和z轴的范围。(returns the axis scaling to its default, automatic mode where,for each dimension, 'nice' limits are chosen based on the extents of all line, surface, patch, and image children.)
7.axis manual:将坐标轴的范围锁定为当前范围。如果打开了hold on命令,则后续的图形都使用同样的坐标范围。该函数设置XLimMode、YLimMode和ZLimMode属性为manual值。(freezes the scaling at the current limits, so that if HOLD is turned on, subsequent plots will use the same limits.)
8.axis tight:设置坐标轴的范围为数据的范围。(sets the axis limits to the range of the data.)
9.axis fill:设置坐标轴的范围以及PlotBoxAspectRatio属性。坐标轴将填充整个矩形局域。只有PlotBoxAspectRatioMode或DataAspectRatioMode属性值为 manual时,该方法才起作用。(sets the axis limits and PlotBoxAspectRatio so that the axis fills the position rectangle.)
10.axis ij:将坐标系的原点设置到左上角。i轴为垂直轴,正方向为从上到下。j轴为水平轴,正方向为从左到右。(puts MATLAB into its "matrix" axes mode. The coordinate system origin is at the upper left corner. The i axis is vertical and is numbered from top to bottom. The j axis is horizontal and is numbered from left to right.)
11.axis xy:在默认的笛卡尔坐标系中绘制图形,坐标系的原点在左下角。x轴为水平坐标轴,正方向为从左到右;y轴为垂直坐标轴,正方向为从下到上。(puts MATLAB into its default "Cartesian" axes mode. The coordinate system origin is at the lower left corner. The x axis is horizontal and is numbered from left to right. The y axis is vertical and is numbered from bottom to top.)
12.axis on:关闭所有坐标轴线、刻度标记和标签。( turns axis labeling, tick marks and background back on)
13.axis image:功能与axis equal相同。只不过坐标轴的边框紧贴在数据的四轴。多用来显示图片。(is the same as AXIS EQUAL except that the plot box fits tightly around the data.)
14.axis normal:自动调节坐标轴的纵横比,从而是图形随窗口的形状而改变.(restores the current axis box to full size and removes any restrictions on the scaling of the units.This undoes the effects of AXIS SQUARE and AXIS EQUAL)
15.v=axis:返回一个行向量,向量中的元素包含x、y和z轴的刻度因子。v具有四个或六个元素,这取决于当前坐标轴是二维的还是三维的。返回值是当前坐标轴的XLim、YLim和ZLim属性的值。(returns a row vector containing the scaling for the current plot. If the current view is 2-D, V has four components; if it is 3-D, V has six components.)
16.axis Vis3D:锁定坐标轴的纵横比.(freezes aspect ratio properties to enable rotation of 3-D objects and overrides stretch-to-fill.)
调用thumnail()方法即可生成缩略图
crop()剪切
paste()粘贴
函数gitput()来实现交互式标注
ginput函数:获取指定点坐标值
用鼠标点击三下
array变换的相反操作可以利用PIL的fromarray()函数来完成
pil_im=Image.fromarray(im)
如果之前的操作将”uint8”数据类型转化为其他类型,则在创建PIL图像之前,需要将数据类型转换回来:
pil_im=Image.fromarray(uint8(im))
flatten是numpy.ndarray.flatten的一个函数,即返回一个折叠成一维的数组。但是该函数只能适用于numpy对象,即array或者mat,普通的list列表是不行的。
numpy.cumsum返回元素沿给定轴的累积和。
numpy.interp()主要使用场景为一维线性插值
在蓝色直线中间插入一个点
scipy.ndimage 中的 morphology 模块可以实现形态学操作
scipy.ndimage 中的measurements 模块来实现二值图像的计数和度量功能
先腐蚀后膨胀的操作称之为开操作
腐蚀是为了去除一些杂乱的细小图像
scipy.ndimage.measurements.label(input, structure=None, output=None)
input:输入一个数组,数组中非0值被认为是目标区域,0值是背景区域
structure:可以用 scipy.ndimage.generate_binary_structure函数来规定连通域图像的维度和连通域所需要的邻域
输出:如果输出是数据类型,则如果输出是类似数组的对象,则指定结果标记的特征数组的类型,则输出将使用该函数的标记功能进行更新。通过传递输出=输入,此函数可以就地操作.注意,输出必须能够存储最大的标签,否则此函数将引发异常。
execute(query,args=None)
函数作用:执行单条的sql语句,执行成功后返回受影响的行数
参数说明:
query:要执行的sql语句,字符串类型
args:可选的序列或映射,用于query的参数值。如果args为序列,query中必须使用%s做占位符;如果args为映射,query中必须使用%(key)s做占位符
executemany(query,args=None)
函数作用:批量执行sql语句,比如批量插入数据,执行成功后返回受影响的行数
参数说明:
query:要执行的sql语句,字符串类型
args:嵌套的序列或映射,用于query的参数值
fetchone() :
返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None
fetchall() :
返回多个元组,即返回多个记录(rows),如果没有结果 则返回 (