自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 python拟合曲线(小批量随机梯度下降)

import numpy as npfrom matplotlib import pyplot as pltplt.ion()X=np.linspace(-1,2,1000)Y=X**3-X**2+X+0.5+np.random.rand(1000)*0.001w=np.zeros(4)lr=0.01for i in range(5000): index=np.random.choice(1000,8) x=X[index] y=Y[index] y_

2021-06-08 20:05:02 499

原创 python实现K-means算法

K-means算法流程:随机选k个样本作为初始聚类中心计算数据集中每个样本到k个聚类中心距离,并将其分配到距离最小的聚类中心对于每个聚类,重新计算中心回到2,至得到局部最优解python代码:import randomimport numpy as npimport matplotlib.pyplot as pltplt.ion()#开启交互,matplotlib默认阻塞模式,直到调用plt.show()才会显示def getDistance(point1,point2): #求

2021-05-09 20:54:21 301

原创 Matlab视频流处理:读取,播放,保存

clc;clear;close all;video=VideoReader('d:\Temp\test.mp4');nFrames=video.NumFrames;% H=video.Height;% W=video.Width;% Rate=video.FrameRate;for i=1:nFrames frame=read(video,i); imshow(frame); %imwrite(frame,strcat('d:\Temp\',num2str(i),'.

2021-04-24 10:58:07 975

原创 使用python爬取视频

写在前面:此博客仅用于参考学习,代码中部分网址已删准备工作pythonburpsuite视频爬取视频网址:https://v.qq.com/x/cover/mzc00200xnrv1u5.html使用h5播放器播放网址内视频,右击选择复制调试信息将复制好的调试信息找个js在线解析工具进行解析,解析好的数据如下,发现视频m3u8相关文件地址对vurl进行解码访问解码后的网址,可以下载一个m3u8文件,里面保存了视频各片段的位置burpsuite抓包(也可使用chrome自带的net

2021-04-14 17:55:58 1300 3

原创 windows下opencv安装及配置(vs2010环境)

opecv下载前往官方下载地址 https://opencv.org/releases/opencv安装及配置解压,会得到一个opencv文件夹,可将提取出的文件移动到任意位置,我将其放在F盘。设置环境变量,进入控制面板,搜索环境变量,进入修改账户环境变量,添加一行F:\opencv\build\vc15\bin,一般选取较新版本。vs2010中配置opencv。为了不用每次创建opencv项目都重新配置一遍,可以创建一份属性表,具体如下。打开vs2010,新建win32控制台应用程序,

2021-04-02 16:01:49 302

原创 系统.dll文件缺失处理办法

缺少.dll 文件导致游戏无法运行,可以到https://www.ijinshan.com/filerepair/dll.shtml下载进行修复

2021-04-02 14:52:59 1159

原创 linux下git的简单使用

参考https://www.bootcss.com/p/git-guide/安装gitsudo apt install git使用git初始化,在你选定的文件夹下运行以下命令git init

2021-03-20 17:12:57 75

原创 ubuntu安装并配置ssh服务

ssh服务在Linux操作系统中时常用到,因此有必要知道如何简单配置ssh服务。安装命令:sudo apt-get install openssh-server修改ssh服务配置vi /etc/ssh/sshd_config一般来说ssh自下载起好不能直接使用,需要修改的选项如下:将passwordauthentication后的no改为yes,不改则表示需要公钥登录,改后表示可以使用用户密码登录(可选)允许以root身份登录则将permitrootlogin 后的prohibit-p

2021-03-19 22:04:41 750

原创 python安装cvxpy

直接使用pip install cvxpy安装cvxpy会报错,一种可行的安装cvxpy的方式如下,前往https://www.lfd.uci.edu/~gohlke/pythonlibs/下载所需的.whl文件,注意需要适配自己python版本和操作系统版本,我的是python38和win64,因此相关文件为cp38和amd64:scsecos下载好后,使用以下命令依次安装以上依赖库pip install <.whl文件所在路径>然后使用 pip install cvxpy就可

2021-01-26 18:25:54 1864 2

原创 霍夫曼编码及文件压缩

霍夫曼编码哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)----源自百度百科以字符串”this is a test“为例,生成霍夫曼编码的步骤如下:计算各字符的权重,这里直接用字符出现的次数表示。t 3h 1i 2s 3\space 3a

2021-01-21 20:15:31 783 1

原创 C++中的继承

继承在继承关系中存在两个类:基类(父类)、派生类(子类)派生类拥有基类的所有特征可以定义新的特征对基类的一些特征进行重定义继承分为单继承和多继承,单继承是指一个类只能有一个直接基类,多继承是指一个类可以有多个直接基类。class <派生类名>: <继承方式> <基类名>{ <成员说明表>};成员说明表:给出派生类中新定义的成员继承方式:public,private, protected ,默认是private。继承方式决定了:基类成员

2021-01-10 23:19:11 150 2

原创 C++中的类属(泛型)机制——模板

函数模板定义:带有类型参数的函数格式:template<class T1,class T2,....> //也可以是typename<返回值类型><函数名>(<参数表>){ ......}T1、T2是函数模板的类型参数使用函数模板定义的函数时需要提供具体类型,返回值类型,参数表中的参数类型以及函数体中的局部变量的类型可以是T1,T2等。示例:template<class T> void sort(T elements[], u

2021-01-10 23:18:54 380

原创 C++中的两种绑定方式(静态绑定、动态绑定)

两种绑定方式静态绑定:在编译时刻,根据指针或引用变量的静态类型来决定成员函数属于哪一个类。动态绑定:在运行时刻,根据指针或引用变量实际指向或引用的对象类型(动态类型)来确定成员函数属于哪一个类。需要注意:C++默认的绑定方式是静态绑定。示例如下:#include<iostream> using namespace std;class bird{ public: void fly(){cout<<"bird fly"<<endl;};//鸟会飞

2021-01-10 23:18:32 2883

原创 c++中的public,protected,private

在C++的类定义中,可以用访问控制修饰符public,private或protected来描述对类成员的访问限制。class A{ public: int x; //访问不受限制。 void f();private: //只能在本类和友元的代码中访问。 int y; void g();protected: //只能在本类、派生类和友元的代码中访问。 int z; void h();};...

2021-01-10 23:18:17 293

原创 C++中的操作符重载

以成员函数形式进行重载class complex{public: complex operator+(const complex&x)const{};以全局函数形式进行重载class complex{ friend complex operator+(const complex&c1,const complex&c2); ……}complex operator+(const complex&c1,const complex&c2){}操作符的前

2021-01-10 23:17:38 102

原创 C++中的vector的用法

参考:https://www.cnblogs.com/aminxu/p/4686332.html使用vector需要包含头文件#include<vector>常用类型 vector<int> a ; //声明一个int型向量a vector<int> a(10) ; //声明一个初始大小为10的向量 v

2021-01-10 23:17:09 155

原创 C++中的new和delete用法

//个体point *p=new point; //point类存在初始化成员函数point(void)的前提下才能这样赋值;delete p;//一维数组,这样赋值的话,p在程序里表示的就不是指针了,而是数组point *p=new point[n];//n为正整数delete []p;//二维数组,创建mxn大小二维数组int i;point**p=new point*[m];for(i=0;i<m;i++) p[i]=new point[n];for(i=0;i<

2021-01-10 23:16:51 205

原创 C++中const的用法

参考:https://www.cnblogs.com/xudong-bupt/p/3509567.htmlC++中的constC++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。const 修饰变量#include<iostream> using namespace std;int main(){ int a; const int b=1

2021-01-10 23:16:21 116

原创 C++中的双冒号(::)

双冒号(::)的用法(来自https://blog.csdn.net/qq_22424571/article/details/82962367)A::member就表示类A中的成员member.B::member就表示类B中的成员member.例如:System::Math::Sqrt()相当于System.Math.Sqrt()简单代码示例#include<iostream> using namespace std;class point{private: int

2021-01-10 23:16:05 528

原创 Matlab实现 sift 特征匹配(代码源自网络)

源码下载:链接:https://pan.baidu.com/s/191COIwM515XP1rEDEP5H1Q提取码:owqt注:解压后将siftWin32放至matlab的bin文件夹下。脚本调用格式如下:clc;clear;close all;img1=imread('figure1.png');img2=imread('figure2.png');img1_gray=rgb2gray(img1);img2_gray=rgb2gray(img2);imwrite(img1_gray

2020-12-21 10:55:22 3263 5

原创 Matlab特征点(角点)匹配,基于SSD

SSD介绍参考:https://blog.csdn.net/hujingshuang/article/details/47759579Matlab代码实现:注:img1,img2为参与特征匹配的图像,corners1,corners2分别为img1,img2上的角点(特征点)function [count,matched]=match(img1,img2,corners1,corners2)img1=im2double(img1);img2=im2double(img2);if size(img1

2020-12-20 23:53:10 4823 11

原创 c++之openGL在VS中的配置及简单图形绘制

VS中openGL的配置相关资源下载:链接:https://pan.baidu.com/s/1hRlxbckgLsNiS87k5CPvLg提取码:tz87以vs2010为例:将下载的压缩包解开,将得到5个文件,分别是glut.h,glut.lib,glut32.lib,glut.dll,glut32.dll。将其中的glut.h放到C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Include\gl里面,VS2010会自动搜索这个路径。将

2020-12-18 10:25:26 1548

原创 Matlab实现图像边缘检测

边缘检测为了在一幅图像 f 的(x,y)位置寻找边缘的强度和方向,所选择的工具就是梯度,梯度使用向量来表示:该向量指出了图像 f 在位置(x,y)处的最大变化率的方向,梯度向量的大小表示为:它是梯度向量方向变化率的值。梯度向量的方向表示为:梯度算子roberts算子:sobel算子:prewitt算子:Matlab实现function output = my_edge(input_img,method)if size(input_img,3)==3 input_img

2020-12-16 16:41:17 3775

原创 Miller方法产生、检验素数

有关Miller方法过程设n为被检验的整数,n=m*2^t+1,期中m为n-1的最大奇因子,t>=1。记检测n是否为素数的算法为F(l,k),其中l为正整数,是算法的输入,Pass为布尔型变量。使用该算法来产生一个大素数还需要做改进,因为用它来产生一个200位的大素数就需要300多秒。但是用来检验素数还是不错的。代码实现2000以内的素数如下:char prime[303][4]={ "2","3","5","7","b","d","11","13","17","1d","1f","25

2020-12-16 16:18:57 440

原创 Matlab实现Harris角点检测算法

角点一般的角点检测都是对有具体定义的、或者是能够具体检测出来的兴趣点的检测。这意味着兴趣点可以是角点,也可以是在某些属性上强度最大或者最小的孤立点、线段的终点,或者是曲线上局部曲率最大的点。在实践中,通常大部分称为角点检测的方法检测的都是兴趣点,而不是独有的角点。因此,如果只要检测角点的话,需要对检测出来的兴趣点进行局部检测,以确定出哪些是真正的角点。目前的角点检测算法可归纳为3类:基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测。角点是图像很重要的特征,对图像图形的理解和分析有很

2020-12-14 23:21:00 10131 4

原创 C语言实现SHA-1

参考:《密码学引论》第二版 武汉大学出版社SHA-1简介SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。(源自百度百科)具体实现数据填充填充数据的母的是使数据长度与448模512同余(这里是指位数)。若数据本身已经满足上述长度要求,让需要进

2020-12-09 17:23:02 2603 4

原创 Matlab实现图像白平衡(灰度世界法、全反射算法)

参考:https://www.cnblogs.com/molakejin/p/5766132.html白平衡白平衡的英文为White Balance,其基本概念是“不管在任何光源下,都能将白色物体还原为白色”,对在特定光源下拍摄时出现的偏色现象,通过加强对应的补色来进行补偿。所谓的白平衡是通过对白色被摄物的颜色还原(产生纯白的色彩效果),进而达到其他物体色彩准确还原的一种数字图像色彩处理的计算方法。(源自百度百科)灰度世界算法灰度世界理论:认为任何一幅图像, 当有足够的色彩变化时, 其R, G,

2020-12-07 18:11:11 5355 3

原创 python爬虫一般格式

写在前面:建议安装BeautifulSoup模块,写爬虫可以节省不少时间。一般出错,参考终端pip给出的建议。pip3 install bs4 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com伴随bs4安装的还有 lxml 模块pip3 install lxml -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.comtryexcept图片来

2020-12-05 22:34:24 1509

原创 C语言实现RSA

1978年美国麻省理工学院的三名密码学者R.L.Rivest, A.Shamir和L.M.Adleman提出了一种基于大合数因子分解困难性的公开密钥密码,简称RSA密码。RSA密码被誉为是一种风格幽雅的公开密钥密码。由于RSA密码即可用于加密,又可用于数字签名,安全、易懂。因此,RSA密码已成为目前应用最广泛的公开密钥密码。许多国家标准化组织,如ISO,ITU和SWIFT等都已接受RSA作为标准。Internet网的E-Mail保密系统CPG以及国际的VISA和MASTER组织的电子商务协议(SET协议

2020-12-04 11:02:03 3289 1

原创 Linux 进程及进程之间的通信机制——管道

linux 进程简介linux是一个多用户多任务的操作系统

2020-11-30 20:57:37 155

原创 Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)

带阻滤波器的传递函数为:D0为截止半径(或是截止宽度)D1、D2由下式确定,表示与(u0,v0)和(-u0,v0)点的距离,此时(u0,v0)是在频域中心为坐标原点表示的,所以是对称关系。使用二阶巴斯沃特带阻滤波器对周期噪声图像滤波:噪声图像如下:首先观察其频谱,了解周期噪声分布:噪声分布在频域图像的竖直方向,在水平方向上没有。画频域图像中心竖直方向的频谱,得到噪声起始两点的位置,分别距离图像上边137和201,即u0=137,u1=201,v0=v,v1=v 。由此构造如下带阻滤波器

2020-11-30 20:39:37 11176 5

原创 Linux gcc 制作动/静态链接库

gcc 静态链接库以 math.c为例gcc -c math.car rcs libmath.a math.oar命令 将多个文件打包成一个备份文件参数r:用来替换库中已有的目标文件,或加入新的目标文件参数c: 表示创建一个库,不管库是否存在,都将创建参数s:用来创建目标文件的索引,这在创建较大的库时能够提高速度静态链接库制作好之后的使用gcc main.c -lmath -o maingcc 动态链接库以math.c为例gcc -fPIC -c math.c # -fPI

2020-11-28 22:57:46 173

原创 Matlab频域高/低通滤波

建议参考书籍:数字图像处理高斯高/低通滤波低通滤波:在这里插入代码片高通滤波器:在这里插入代码片

2020-11-26 21:50:11 5851 6

原创 Matlab大气湍流退化模型

退化函数为Matlab代码:function out=daqituanliu(img,k)img=double(img);F=fft2(img);[m,n,h]=size(F);H=zeros(m,n);for i=1:m for j=1:n H(i,j)=exp(-k*((i-m/2)^2+(j-n/2)^2)^(5/6)); endendif h==1 out=uint8(real(ifft2(F.*H)));elseif h==3

2020-11-25 19:48:17 6535 12

原创 linux c 操作Frame Buffer实现基本的图形API(画点、画线、画圆)

#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#include<unistd.h>#include<fcntl.h>#include<sys/mman.h>#include<sys/ioctl.h>#include<linux/fb.h>#define pi 3.1415926typed

2020-11-24 19:59:46 2202 1

原创 Matlab中的meshgrid函数

参考:https://blog.csdn.net/hhhhhyyyyy8/article/details/76209094matlab函数手册meshgrid是Matlab中用于生成网络采样点的函数。常用于3d绘图。调用方式:[X, Y]=meshgrid(xgv,ygv);复制网格向量xgv和ygv生成矩阵网格(X,Y)的坐标输出X,Y为维度相同的矩阵。令nx,ny 分别为向量xgv,ygv中数的个数,那么xgv被复制ny次以形成X的列,ygv被复制nx次形成Y的行。示例:[X, Y,

2020-11-23 23:01:08 6932

原创 C语言实现傅里叶变换函数dft,idft,fft,ifft

int i,j,x,y; double re,im,temp; for(i=0;i<height;i++){ for(j=0;j<width;j++){ re=0; im=0; for(x=0;x<height;x++){ for(y=0;y<width;y++){ temp=i*x/(double)height+j*y/(double)width; re+=imageData[lineBytes*x+y]*cos(-2*pi*t

2020-11-22 00:07:57 3037 3

原创 kali2020安装中文输入法(切换中文输入法)

修改镜像源(以阿里云为例)。https://mirrors.aliyun.com/kali切换为root,更新系统,然后等待sudo apt-get updatesudo apt-get upgrade安装ibussudo apt-get install ibus进入ibus preference,添加中文输入法修改~/.bashrc文件,加入以下几行,如果没加的话需要手动启动ibus,而且每次启动都会提醒你加的。export GTK_IM_MODULE..

2020-11-18 10:39:58 7267 2

原创 C语言实现十大经典排序算法

冒泡排序void bubbleSort(int a[],int n){ int i,j,temp; for(i=0;i<n-1;i++){ for(j=0;j<n-i-1;j++){ if(a[j+1]<a[j]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } }}选择排序void selectSort(int a[],int n){ int i,j,temp,index; for(i=0

2020-11-16 11:39:27 742

原创 Matlab相机标定并进行图像校正

Matlab相机标定工具

2020-11-15 11:58:23 7947 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除