- 博客(69)
- 资源 (7)
- 收藏
- 关注
原创 linux:文件描述符(二)
文件描述符文件描述符继承验证dup原型功能参数返回值dup2原型功能参数返回值重定向至logpipe原型功能参数返回值例子:管道连接父子进程文件描述符继承子进程会继承父进程的文件描述符验证#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <stdio.h>void dump(int fd){
2021-05-22 17:01:43
536
3
原创 linux:文件描述符(一)
文件描述符文件描述符定义系统调用打开文件读写文件例子:访问文件文件描述符定义一个非负整数应用程序利用文件描述符来访问文件file descriptor,简写为fd系统调用打开现存文件或新建文件时,内核会返回一个文件描述符读写文件也需要使用文件描述符来指定待读写的文件打开文件int open(char *path, int flags, mode_t mode);内核会返回一个文件描述符fd用来表示该文件读写时需要使用fd指定待读写的文件读写文件int read(int
2021-05-22 15:59:47
482
原创 linux:进程相关知识(三)
linux进程命令行参数C程序的main函数原型参数例子execl原型功能返回值execlp原型功能execl和execlp的区别例子execv原型功能参数execl和execv的区别execvp例子exit原型功能atexit原型功能例子wait原型功能参数退出码例子命令行参数C程序的main函数原型int main(int argc, char *argv[]);参数操作系统将命令行参数传递给main函数argc,命令行参数的个数argv,命令行参数数组例子cp /etc/pas
2021-05-22 15:51:22
189
原创 linux:进程相关知识(二)
linux进程进程特性fork的实现细节隔离特性并发例子隔离例子进程特性父进程和子进程并发运行父进程创建子进程后,父子进程都处于运行状态中两个进程的输出结果是交织在一起的两者的代码段内容相同父进程从fork()返回处执行,fork()返回为子进程的PID子进程从fork()返回处执行,fork()返回0fork的实现细节操作系统为子进程创建PCB(进程控制块),把父进程的大部分属性复制到子进程的PCB中不复制PID属性,父子进程拥有不同的PID操作系统为子进程创建地址空间,把
2021-05-22 11:34:56
210
原创 linux:c的文件读写
C的文件读写打开文件原型功能参数创建文件原型功能返回值参数关闭文件原型功能参数读取文件原型功能参数写入文件原型功能定位文件原型功能应用打开文件原型#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);功能打开已有的文件如果打开失败,返回-1如果打开成功,返回值>=0,作为被打开文件的标识符,该整数被称为文件描述符参数pathname,指定文
2021-05-22 11:02:21
792
原创 linux下c语言实现sh.c
#include<unistd.h>#include<stdio.h>#include<sys/wait.h>#include<sys/types.h>#include<stdlib.h>#include<string.h>#define MAX_CMD 1024#define MAX_DIR_NAME 1024int buildin_command(char **argv){ if(strcmp(argv[0]
2021-05-05 02:03:34
585
原创 RIP、OSPF、BGP三种协议的比较
RIP、OSPF、BGP三种协议的比较总结总结协议RIPOSPFBGP类型内部内部外部路由算法距离向量链路状态路径向量传递协议UDPIPTCP路径选择跳数最少代价最低较好,非最佳交换节点和本结点相邻的网络中所有的路由器和本结点相邻的路由器交换内容自己的路由表与本路由器相邻的所有路由器的链路状态第一次交换整个路由表,以后只交换变化的部分ATTRIBUTERIPOSPFBGPConverg
2021-04-21 23:27:24
2448
2
原创 详解二分搜索的细节
详解二分搜索的细节前言寻找一个数寻找左边界前言Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky…二分搜索的想法很直白,但细节很致命本文假定所有数组均是升序排列的,且可能有重复元素。二分搜索模板:int binarySearch(int[] nums, int target) { int left = 0, r
2021-03-30 23:42:52
270
原创 网络包监控数据的处理与可视化
文件下载targetA.csvtargetB.csv要求文件格式及说明处理结果代码import numpy as npimport pandas as pdfrom pandas import read_csvimport matplotlibimport matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocatormatplotlib.rcParams['axes.unicode_minu
2021-03-16 13:30:28
272
1
原创 python图像处理:测量物体大小 Measuring size of objects in an image with OpenCV
python图像处理:测量物体大小 Measuring size of objects in an image with OpenCV效果原理代码这篇文章是对Adrian Rosebrock大神博客的学习和整理。先看效果效果物品实际(长x宽)测量(单位:mm)硬币25.0x25.025.0x25.0橡皮55.0x18.259.2x29.0药丸18.0x7.020.1x7.4卡片87.3x62.789.0x64.1可以看到,还是比较
2021-03-14 19:41:08
11480
10
原创 python图像处理:文档拍照扫描(手动构造扫描仪)
python图像处理实践:拍照文档扫描效果原理代码补充说明本文是我在学习Adrian Rosebrock大佬的博客后的实践与整理。话不多说,先看效果。效果第一张是我自己拍的,字比较清楚;第二张是网图,比较模糊,但总体效果可以接受。原理首先,我们可以认定,我们要处理的图都是符合下面两点的:拍的文档是长方形的文档在整个图里占很大比例当然,如果背景是个比较单纯的底色,识别效果肯定会更好。自然语言来描述的话,流程大致如下:找到文档,将其摆平黑白化至于流程1,我在我的上 一篇博客
2021-03-13 23:14:44
7095
4
原创 python图像处理:透视变换
python图像处理:透视变换原理效果代码原理透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。通用的变换公式为:u,v是原始图片坐标,对应得到变换后的图片坐标x,y,其中。变换矩阵可以拆成4部分,表示线性变换,比如scaling,shearing和ratotion。用于平移,产生透视变换。所以可以理解成仿射等是透视变换的特殊形式。经过透视变换之后的图片通常不是平行四
2021-03-09 19:59:07
4435
2
原创 二进制位运算遍历所有子集
二进制位运算遍历所有子集简介代码简介今日元宵节,力扣每日一题为Leetcode1178.猜字谜,鄙人愚钝,这条题目想了好久才明白,特此记录。在用二进制记录哈希映射时,常用1表示选中,0表示未选中。如 10101表示选中第1、3、5个,其子集应有23 个,其中一个为空集。子集:10101,10100,10001,10000,00101,00100,00001,00000(空集)。我们设x是表示集合的整数(如上一段中的10101),则其任意一个子集表示的整数y,均有y<x二进制表示的y中的
2021-02-26 20:14:21
861
原创 利用LSTM进行股价预测
利用LSTM进行股价预测效果原理代码应用效果原理LSTM即长短记忆网络,是一种很强的RNN,这种网络的特性是以前的输入会影响现在的输出,具体原理请自行搜索。算法流程:获取yahoo财经网上的股价数据,进行预处理搭建一个简单网络,前面是LSTM用来回归,后面是全连接用来输出测试,可视化处理代码注释很详细(其实也没啥要说的)import numpy as npimport matplotlib import matplotlib.pyplot as plt import pand
2021-02-04 00:06:53
1402
2
原创 python遍历日期
python遍历日期代码输出代码import datetime as dtlength = 10begin = dt.date(2020,6,1)delta = dt.timedelta(days=1)d = beginticks = []for _ in range(length): ticks.append(d.strftime("%Y-%m-%d")) d += deltaprint(ticks)输出['2020-06-01', '2020-06-02', '2
2021-02-03 23:07:47
2908
1
原创 详解python列表中冒号的用法
详解python列表中冒号的用法切片赋值a=b型a=b[:]型a[:]=b[:]型写这个专题是因为做Leetcode第88题被两个写法坑了一下nums1 = sorted(nums1[:m]+nums2[:n])nums1[:] = sorted(nums1[:m]+nums2[:n])乍一看没什么区别,但实际上第一行的写法会变动原有num1的物理地址,而第二种不会变动物理地址,只是修改当前地址里的内容。详细请看下文。切片常规操作,看看就行#a[x:y] 左闭右开a = [[1,2,3,4
2021-01-30 21:54:11
3345
原创 python图像处理:边缘模糊
python图像处理:基于canny的动态边缘模糊效果原理canny边缘检测代码效果流程如下:先选择canny的两个阈值,确定好需要进行模糊的边缘,再选择模糊程度原理canny边缘检测参考链接Canny边缘检测算法可以分为以下5个步骤:使用高斯滤波器,以平滑图像,滤除噪声。计算图像中每个像素点的梯度强度和方向。应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。应用双阈值(Double-Threshold)检测来确定真实的和
2021-01-22 19:48:27
4524
原创 python图像处理:图像融合
python图像处理:基于图像金字塔的动态图像融合效果原理高斯金字塔差分金字塔(拉普拉斯金字塔)重构与融合代码效果话不多说,先看实际效果。熊猫为主图,苹果为融入源。保留熊猫的边缘信息与部分颜色信息,融入苹果的部分色彩信息融入的比例可以动态调整原理这里就简单介绍下,详细内容请自行查阅资料参考链接1高斯金字塔对整个图像不断高斯滤波以及下采样,构成的所有图像集合才构成了图像的高斯金字塔。差分金字塔(拉普拉斯金字塔)对高斯金字塔逐层作差,得到损失信息。Q: 损失信息是什么?A
2021-01-22 19:24:21
5096
1
原创 python图像处理:全景图片转鱼眼图片(鱼眼矫正)
全景图片转鱼眼图片原理效果代码一二原理效果这里有两种具体实现我觉得第二种漂亮些代码一import cv2import numpy as np import mathdef transform(img): rows,cols,c = img.shape R = np.int(cols/2/math.pi) D = R*2 cx = R cy = R print(rows,cols,c,R,D,cx,cy) new_img =
2021-01-22 18:33:05
6481
10
原创 python图像处理:凸透镜效果/鱼眼图像
图像处理:凸透镜效果/鱼眼图像原理效果代码原理原理很简单,经过凸透镜放大的区域可以看成一个圆形区域,这个圆形区域是由原始图像一个很小的圆形区域扩展而来。效果代码import cv2import numpy as np import mathdef transform(img): rows,cols,c = img.shape center_x,center_y = rows/2,cols/2 #radius = min(center_x,center_y)
2021-01-22 18:23:28
2954
1
原创 python图像处理:图像灰度非线性变换
图像灰度的非线性变换平方变换对数变换平方变换将灰度进行平方再除以255,用于降级图像亮度增强亮部对比度减缓暗部对比度对比度可以看作灰度的斜率对数变换
2021-01-15 22:40:04
1858
1
原创 python图像处理:图像的傅里叶变换、低通滤波、高通滤波、带通滤波
图像的傅里叶变换:低通、高通、带通原理应用实践原理大家都知道,在一维上,傅里叶变换:能将一个时域上的信号转换到频率域上认为一个周期信号能用若干三角函数的和来表示在二维上,我们也可以将图片看做信号,只不过这个信号是在空间域上的。我们在观察时域上的信号变化时,是根据某个时间点的信号幅度与其相邻时间点的信号幅度来判断,同理,在空间域上,是根据某个空间点(比如的2行3列的像素点)信号幅度与其相邻空间点的信号幅度来判断其变化的,但与一维相比,二维多了方向这个概念。二维傅里叶变换:能将一个空间域上
2021-01-10 15:52:01
4407
1
原创 python图像处理:40行手动实现车牌检测(python+opencv)
40行手动实现车牌检测效果思路代码效果先来看下效果检测结果:思路原图转灰度图对灰度图进行高斯滤波、中值滤波去噪使用sobel算子计算梯度(即提取边缘),这里考虑到车牌上字都是瘦长的,所以我这里只用了水平梯度,这样可以避免环境的干扰对梯度图进行高斯滤波去除细节转二值图腐蚀1次,膨胀10次,来使车牌整体连接成一个白色色块寻找围成面积最大的轮廓,进行方向校正,最后画出代码import cv2 import numpy as np import matplotlib.py
2021-01-09 15:49:10
690
原创 python图像处理:图像线性灰度变换
图像线性灰度变换原理效果代码原理DB为变换后的灰度值,DA为变换前的灰度值,a为缩放率,b为截距。ab含义10原有灰度1!0灰度上移/下移-1255灰度反转>1增强对比度0<a<1减小对比度<0反色(底片效果)效果代码img = cv2.imread('Panda.jpg')img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)rows,cols
2021-01-08 22:11:17
1995
原创 python形态学图像处理:图像腐蚀、图像膨胀、开运算、闭运算、梯度运算、顶帽、黑帽
形态学图像处理:腐蚀、膨胀、开运算、闭运算腐蚀、膨胀开闭运算效果python+cv2代码腐蚀、膨胀这两个操作原理一样,都是先创造一个kernel,在kernel中划分感兴趣区域与原点。腐蚀时,若当前感兴趣区域中有0,则将原点赋为0;膨胀时,若当前感兴趣区域中有1,则将原点赋为1。开闭运算开运算:先腐蚀,再膨胀开运算可用于去噪、去毛刺、分离两个连接在一起的物体。闭运算:先膨胀,再腐蚀闭运算可用于填充小孔、连接两个分离的物体。这里的物体是相对的,可以理解成:开运算:连接黑色色块,去除白色
2021-01-06 12:02:28
1015
原创 python查询号码归属地及运营商
代码:import phonenumbersfrom phonenumbers import geocoder,carriernumber = '+86要查询的号码'ch_number = phonenumbers.parse(number)print(geocoder.description_for_number(ch_number,'zh'))print(carrier.name_for_number(ch_number,'zh'))输出:江苏省xx市中国移动...
2021-01-04 21:42:12
556
原创 绘制图像直方图
绘制图像直方图CV2实现Matplotlib实现CV2实现import cv2 as cv import numpy as npimport matplotlib.pyplot as plt%matplotlib qt5img = cv.imread('111.jpg')channels = ('b','g','r')for i,c in enumerate(channels):#参数分别为图像、通道、掩码、bins(分成几堆)、范围 hist = cv.calcHist([im
2021-01-02 22:51:18
327
原创 python获取屏幕像素
python获取屏幕像素from ctypes import * # 获取屏幕上某个坐标的颜色 def get_color(x, y): gdi32 = windll.gdi32 user32 = windll.user32 hdc = user32.GetDC(None) # 获取颜色值 pixel = gdi32.GetPixel(hdc, x, y) # 提取RGB值 r = pixel & 0x0000ff g = (pixel &
2020-12-30 22:38:09
3596
1
原创 python windows curses库安装教程
python windows curses库安装教程curses库不支持Windows操作系统,因此如果您用Windows操作系统并且确实需要用curses库,那需要手动安装。首先,进入这个网站cp39代表适用于python3.9,以此类推,32还是64自行根据系统选择。下载好之后,在终端输入pip install 刚下载好的文件名(注意目录跟虚拟环境)即可...
2020-12-28 19:09:38
7856
2
原创 python来画Bad apple! 50行实现视频转字符画
50行实现视频转字符画基本思路版本一样例问题代码版本二样例解决方案代码基本思路读取一段视频,读取每一帧对每一帧的图片的尺寸进行处理,并转成灰度图对于灰度图的每一像素将其映射到自己选择的字符集中,形成字符串循环打印字符串版本一样例问题使用os.system(‘cls’)来清空控制台输出效率低下,会出现下图展示的这种情况,导致看起来一闪一闪的此问题在版本二中解
2020-12-28 19:02:27
1819
1
原创 简单理解python中的生成器
简单理解python中的生成器引言例子引言计算机的内存是有限的,所以像下面这样的代码会占用大量内存x = [i**2 for i in range(100000000)]生成器就是为了解决这个问题而存在的,它不会存放所有的数据,而是要用一个就生成一个例子yield关键字相当于断点+returndef gen(): yield 1 yield 2 yield 3t = gen()print(next(t))print(next(t))print(next(t)
2020-12-25 22:14:59
141
原创 简单了解python中的装饰器
简单了解python中的装饰器等价形式例子:计时器等价形式def Test(func): def inside(): func() return insidedef funcA(): print("Just a joke")funcA = Test(funcA)funcA()等价于def Test(func): def inside(): func() return inside@Testdef funcA()
2020-12-25 16:56:33
129
原创 python中的元组metaclass
python中的元组metaclass引言简单例子引言尝试理解下面几句话type的父类是objectobject的元类是type实例由类创建,类由type创建我们知道,python中一切皆对象,类(class) 也不例外。类(class) 作为一个对象,它需要有类型(type) ,像 [1,2,3] 这样的对象,其类型为list,而list的类型为type,而type自身的类型即为type,是递归定义的。下面用代码来验证:a = [1,2,3]print(type(a))print(
2020-12-25 16:12:23
140
1
原创 HP滤波图文介绍与python代码实现
HP滤波图文介绍目标原理python实现代码结果目标我们希望去除信号中的趋势,使信号看起来是直的原理python实现代码import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinedef hp(y, lamb=10): def D_matrix(N): #(N-1,N) 元素全为0 D = np.zeros((N-1,N)) #后(N-1,N-1)对角
2020-12-17 23:06:52
11152
8
原创 KeyError: ‘Date‘错误
KeyError: 'Date'错误问题描述解决问题描述出现这个问题一般是用pandas处理数据的时候数据没对齐,如下图所示:解决reset_index()这个函数里有inplace参数,设置为True即可让数据归位df.reset_index(inplace=True)...
2020-11-28 22:05:12
8761
1
原创 python绘制k线图
python绘制阿里巴巴股票k线图准备流程效果准备安装几个库pip install datetimepip install matplotlibpip install pandas_datareaderpip install mpl_finance流程获取数据数据处理交给mpl_finance绘图#代码import datetime as dtimport matplotlib.dates as mdatesimport matplotlib.pyplot as plti
2020-11-28 21:49:03
701
原创 Numpy学习(6):分割
Numpy学习:分割import numpy as npa = np.arange(12).reshape(3,4)print(np.split(a,2,axis=1))print(np.split(a,3,axis=0))#不等量分割print(np.array_split(a,3,axis=1))
2020-11-26 22:17:37
165
10000个常见的子域名 subdomain
2020-11-14
文法化简 消除空产生式 单元产生式 消除无用符号
2020-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人