- 博客(48)
- 收藏
- 关注
原创 webserve简介
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求 - 响应协议,它通常运行在TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以 ASCII 形式给出;而消息内容则具有一个类似 MIME 的格式。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。
2023-04-13 23:39:41
6164
原创 网络编程 socket
/ 转换端口// 主机字节序 - 网络字节序// 主机字节序 - 网络字节序// 转IP// 主机字节序 - 网络字节序// 主机字节序 - 网络字节序//转换端口 unsigned short a = 0x0102;//转换ip char buf [ 4 ] = {return 0;// p:点分十进制的IP字符串,n:表示network,网络字节序的整数af:地址族: AF_INET AF_INET6src:需要转换的点分十进制的IP字符串。
2023-04-03 11:10:45
402
原创 进程部分、进程通讯方式
简单的理解为:内核只为新生成的子进程创建虚拟空间结构,它们来复制于父进程的虚拟究竟结构,但是不为这些段分配物理内存,它们共享父进程的物理空间,当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间。父进程和子进程各自执行不同的程序段:在这种情况下,在 fork 之后,父进程和子进程各自关闭它们不需使用的文件描述符,这样就不会干扰对方使用的文件描述符。fork的一个特性是进程的所有打开文件描述符都被复制到子进程中,简单的理解为父子进程共享fork之前打开文件的读写漂移量。
2023-03-26 22:29:30
413
原创 【无标题】
python相对路径读取文件“相对路径”就是针对“当前文件夹”这一参考对象,来描述文件路径的形式。相对路径使用…\或.\表示。一个点.\ 表示文件或文件夹所在的当前目录。两个点…\表示当前目录的上一级目录。上n级就用n 个…\表示。...
2022-05-23 22:39:11
78
原创 2021-09-02
参考1参考2输出数据集import feedparserimport numpy as npimport matplotlib.pylab as plt#导入数据def loadDataSet(fileName): dataMat=[] labelMat=[] fr=open(fileName) for line in fr.readlines(): lineArr= line.strip().split('\t') dataMa
2021-09-02 16:38:39
112
原创 2021-08-17
logistic回归梯度公式的推导import feedparserfrom numpy import *def loadDateSet(): dataMat=[] labelMat=[] fr=open('F:\\learn\\machinelearninginaction\\Ch05\\testSet.txt') for line in fr.readlines(): # 对当前行去除首尾空格,并按空格进行分离 lineArr=li
2021-08-17 03:44:32
203
原创 2021-08-14
朴素贝叶斯文本分类from numpy import *def loadDataSet():#词条切分后的文档集合,列表每一行代表一个文档 postingList=[['my','dog','has','flea',\ 'problems','help','please'], ['maybe','not','take','him',\ 'to','dog','park','stupid'
2021-08-14 03:32:42
303
原创 2021-08-06
ID3决策树import numpy as npfrom os import listdirimport operatorimport matplotlib.pyplot as pltfrom math import log#创造数据集def creatDateset(): dataset=[[1,1,'yes'],[1,1,'yes'],[1,0,'no'],[0,1,'no'],[0,1,'no']] labels=['no surfacing','flippers']
2021-08-08 01:27:37
108
原创 2021-08-02
K近邻算法基本k近邻算法import numpy as npimport operator#创建数据集和标签def CreatDateSet(): group =np.array( [[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels =['A','A','B','B'] return group,labels#inx是输入向量,训练样本是dataset,标签是labels,k是选择邻居的数目def classify0(inx,data
2021-08-04 02:16:19
78
原创 2021-08-02
NumPy函数库基础rand()可以随机生成一个n*n的数组import numpy as nprand = np.random.rand(4,4)print(rand)mat()将一个数组转化为矩阵import numpy as nprand = np.random.rand(4,4)randmat=np.mat(rand)print(randmat)注意 Numpy数组和矩阵的区别:Numpy matrices必须是2维的,但是 numpy arrays (ndarr
2021-08-02 22:45:01
121
原创 2021-07-30
特征检测哈里斯角检测cv.cornerHarris()输入:• img - 数据类型为 float32 的输入图像。• blockSize - 角点检测中要考虑的领域大小。• ksize - Sobel 求导中使用的窗口大小• k - Harris 角点检测方程中的自由参数,取值参数为 [0,04,0.06].返回:是具有特征分数的灰度图像。import numpy as npimport cv2 as cvfilename = 'C:\\Users\\Administrator\\
2021-07-31 01:38:03
474
原创 2021-07-29
交互式前景提取使用GrabCut算法用户在前景区域周围绘制一个矩形(前景区域应完全位于矩形内部)。然后,算法会对其进行迭代分割,以获得最佳结果。做完了但在某些情况下,分割可能不会很好,例如,可能已将某些前景区域标记为背景,反之亦然。在这种情况下,需要用户进行精修。只需在图像错误分割区域上画些笔画。笔画基本上说 “嘿,该区域应该是前景,你将其标记为背景,在下一次迭代中对其进行校正”或与背景相反。然后在下一次迭代中,你将获得更好的结果。现在我们使用OpenCV进行抓取算法。OpenCV为此具有功能cv.gr
2021-07-30 18:34:13
312
原创 2021-07-29
图像分割与Watershed算法分水岭算法可以实现基于标记的图像分割。接下来通过分割下图的硬币来理解此算法。我们先从寻找硬币的近似估计开始。因此,我们可以使用Otsu的二值化。import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltimg = cv.imread('coins.png')gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)ret, thresh = cv.thr
2021-07-29 01:47:29
164
原创 2021-07-28
霍夫线变换霍夫线变换是一种检测任何形状的流行技术。即使形状有些破损或变形,也可以检测出形状。以检测上面的黄线为例。霍夫线变换所使用的直线的表达方式是极坐标的表达方式。l=p*cosθ,l是该点到该直线的垂直距离,a是该线与x轴形成的角度。如果线在原点下方通过,则它将具有正的\角度值且角度小于180。如果线在原点上方,则将角度取为小于180,而角度值取负值。任何垂直线将具有0度,水平线将具有90度。任何一条线都可以用(ρ,θ)表示。因此,首先创建2D数组或累加器(以保存两个参数的值),并将其初始设置
2021-07-29 00:51:03
101
原创 2021-07-28
模板匹配模板匹配是一种用于在较大图像中搜索和查找模板图像位置的方法。cv.matchTemplate()cv.matchTemplate(InputArray image, InputArray templ, OutputArray result, int method);image:输入一个待匹配的图像,支持8U或者32F。templ:输入一个模板图像,与image相同类型。result:输出保存结果的矩阵,32F类型。如果输入图像的大小为 (WxH) ,而模板图像的大小为 (wxh) ,则
2021-07-28 22:43:32
109
原创 2021-07-27
傅里叶变换傅立叶变换用于分析各种滤波器的频率特性。可以将图像视为在两个方向上采样的信号。因此,在X 和Y方向都进行傅立叶变换,可以得到图像的频率表示。图像中的振幅在哪里急剧变化?在边缘点或噪声。因此,可以说边缘和噪声是图像中的高频内容。如果幅度没有太大变化,则它是低频分量。Numpy中的傅里叶变化Numpy函数介绍numpy.fft.fft()该函数计算一维傅里叶变换,它的第一个参数是一维数组。第二个参数是可选的,它决定输出数组的大小。如果它大于输入数组的大小,则在计算FFT之前用零填充输入数组。
2021-07-28 17:59:39
2021
原创 2021-07-25
直方图直方图是在X轴上具有像素值(不总是从0到255的范围),在Y轴上具有图像中相应像素数的图。这是理解图像的另一种方式。通过查看图像的直方图,您可以直观地了解该图像的对比度,亮度,强度分布等。一些概念BINS:直方图显示每个像素值的像素数,即从0到255。即您需要256个值来显示上面的直方图。但是考虑一下,如果您不需要分别找到所有像素值的像素数,而是找到像素值间隔中的像素数怎么办? 例如,您需要找到介于0到15之间的像素数,然后找到16到31之间,…,240到255之间的像素数。只需要16个值即可表
2021-07-26 00:30:25
769
原创 2021-07-24
轮廓轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。findContours()findcontour()函数中有三个参数,第一个是源图像,第二个是轮廓检索模式,第三个是轮廓逼近方法。然后输出等高线和层次结构。轮廓是图像中所有轮廓的Python列表。每个单独的轮廓是一个(x,y)坐标的Numpy数组的边界点的对象。轮廓检索模式:代码方法cv2.RETR_LIST检测的轮廓不建立等级关系cv2.RET
2021-07-25 02:13:50
294
原创 2021-07-24
图像金字塔cv.pyrDown()他的输入是要处理的图片,输出是处理后的图片。res = cv2.pyrDown(src)他是通过删除较低级别(较高分辨率)图像中的连续行和列而形成的。然后,较高级别的每个像素由基础级别的5个像素的贡献与高斯权重形成。通过这样做,M×N图像变成M/2 × N/2图像。因此面积减少到原始面积的四分之一。cv.pyrUp()他的输入是要处理的图片,输出是处理后的图片。res = cv2.pyrUp(src)他是将行和列扩展为原来的两倍,用0填充。然后使用和向下
2021-07-24 15:34:36
48
原创 2021-07-24
Canny边缘检测edge = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]]) 必要参数:第一个参数是需要处理的原图像,该图像必须为单通道的灰度图;第二个参数是阈值1;第三个参数是阈值2。其中较大的阈值2用于检测图像中明显的边缘,但一般情况下检测的效果不会那么完美,边缘检测出来是断断续续的。所以这时候用较小的第一个阈值用于将这些间断的边缘连接起来。可选参数:中apertureS
2021-07-24 12:51:34
138
原创 2021-07-24
图像梯度cv.Sobel(),cv.Scharr(),cv.Laplacian()等函数可以查找图像梯度,边缘等Sobel()Sobel算子是高斯平滑加微分运算的联合运算,因此它更抗噪声。dst = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) 第一个参数是需要处理的图像;第二个参数是图像的深度,-1表示采用的是与原图像相同的深度。目标图像的深度必须大于等于原图像的深度;dx和d
2021-07-24 12:03:06
110
原创 2021-07-23
形态学转换getStructuringElement( )cv2.getStructuringElement( ) 返回指定形状和尺寸的结构元素。函数的第一个参数表示内核的形状,有三种形状可以选择。矩形:MORPH_RECT;交叉形:MORPH_CROSS;椭圆形:MORPH_ELLIPSE。第二和第三个参数分别是内核的尺寸以及锚点的位置。 对于锚点的位置,有默认值Point(-1,-1)表示锚点位于中心点。kernel = cv2.getStructuringElement(cv2.MORPH_
2021-07-23 01:17:13
181
原创 2021-07-22
图像模糊cv.filter2Dcv.filter2D可以将内核与图像进行卷积,进而产生不同效果的图像。dst=cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])src 原图像dst 目标图像,与原图像尺寸和通过数相同ddepth 目标图像的所需深度kernel 卷积核(或相当于相关核),单通道浮点矩阵(也是该函数的关键)anchor 内核的锚点,指示内核中过滤点的相对位置;锚应位于内核中;默认值(
2021-07-23 00:00:14
95
原创 2021-07-22
图像阈值汇总threshold()函数cv.threshold()函数的作用是将图像上的像素点的灰度值设置为0或255。主要是为了制造掩膜来使用的。他的输入有五个,第一个是源图像,第二个是输出的图像,第三个是阈值,第四个是输出图像中像素值的最大值,第五个是阈值类型。返回值有两个,第一个是retl与参数thresh一致,第二个是结果图像。ret, mask = cv.threshold(img, 10, 255, cv.THRESH_BINARY)阈值类型说明:函数图像未处理前:编号
2021-07-22 22:11:58
85
原创 2021-07-22
图像的几何变换cv.warpAffine函数cv.warpAffine函数可以实现图像的、平移、 旋转、仿射变换等功能。该函数的输入和输出如下:cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dstsrc - 输入图像M - 2*3的变换矩阵 是实现各种功能的关键dsize - 输出图像的大小。flags - 插值方法的组合(int 类型!)默认为 flags=cv2.INTER_LINE
2021-07-22 18:09:36
278
原创 2021-07-22
opencv-python改变颜色空间cv.cvtColor()函数用于颜色空间转换。他的参数有两个,第一个是需要改变颜色空间的图片对象,第二个是需要转换成的类型。然后返回改变后的图片。img1 = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)转换类型:转换类型opencv2.xopencv3.xRGB<–>BGRCV_BGR2BGRA 、CV_RGB2BGRA 、CV_BGRA2RGBA 、CV_BGR2BGRA、CV BGRA2
2021-07-22 15:54:03
119
原创 2021-07-22
opencv-pyhton的性能提高时间函数cv.getTickCount()函数返回从操作系统启动到当前所经的计时周期数。cv.getTickFrequency函数返回每秒的计时周期数。time.time()函数返回的是当前的绝对事件单。一个计算运行时间的例子:import cv2 as cvimport timeimg1 = cv.imread('C:\\Users\\Administrator\\Desktop\\pic\\2.png')e1 = time.time()e3=cv.
2021-07-22 12:25:28
221
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人