自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenCV模板匹配

res = cv2.matchTemplate(img, template, method)min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)method:匹配算法 ### TM_SQDIFF:计算平方不同,计算出来的值越小越相关 ### TM_CCORR:计算相关性,计算出来的值越大越相关 ### TM_CCOFFF:计算相关系数,计算出来的值越大越相关 ### TM_SQDIFF_NORME...

2021-01-30 09:00:08 193

原创 OpenCV图像金字塔与轮廓检测

一、高斯金字塔import cv2import matplotlib.pyplot as pltimport numpy as npimg = cv2.imread('./cat.jpg', cv2.IMREAD_COLOR)b, g, r = cv2.split(img)img = cv2.merge((r, g, b))pyrup = cv2.pyrUp(img) #向上采样pyrdown = cv2.pyrDown(img) #向下采样plt.f

2021-01-30 08:31:07 255 1

原创 OpenCV图像边缘检测

一、Canny边缘检测的一般步骤1.使用高斯滤波器,以平滑图像,滤除噪声;2.计算图像中每个像素点的梯度强度和方向;3.应用非极大值抑制,以消除边缘检测带来的杂散效应;4.应用双阈值检测来确定真实的和潜在的边缘;5.通过抑制孤立的弱边缘最终完成边缘检测。二、梯度强度和方向的计算三、关于非极大值抑制1.方法一2.方法二四、双阈值检测五、OpenCV接口实现import cv2import matplotlib.pyplot as pltim

2021-01-29 15:50:45 508

原创 OpenCV图像梯度计算

一、Sobel算子二、计算图像梯度dst = cv2.Sobel(src, ddepth, dx, dy, ksize)ddepth:图像的深度dx和dy分别表示水平和竖直方向ksize是Sobel算子的大小import cv2import matplotlib.pyplot as pltimg = cv2.imread('./noisy.jpg', cv2.IMREAD_GRAYSCALE)#滤波img = cv2.medianBlur(img, 5)#计算

2021-01-29 12:28:05 679

原创 OpenCV图像阈值操作和平滑处理

一、图像阈值操作ret, dst = cv2.threshold(src, thresh, maxval, type)src:输入图,只能输入单通道图,通常来说为灰度图dst:输出图thresh:阈值maxval:当像素超过了阈值(或小于阈值,由type决定),所赋予的值type:二值化操作的类型,包含以下五种:### cv2.THRESH_BINARY 超过阈值部分取maxval,否则取0### cv2.THRESH_BINAEY_INV ...

2021-01-29 10:33:33 182

原创 Pytorch搭建神经网络完成监督学习-分类任务

今天玩点相对刺激的,利用神经网络完成非线性四分类任务。一、创建训练集为了保证后续过程中产生的随机数都是一致的(方便测试),我们首先种下一颗随机种子。import torchimport matplotlib.pyplot as pltimport torch.nn.functional as Fimport numpy as npdef setup_seed(seed): torch.manual_seed(seed) torch.cuda.manual_seed_a

2021-01-29 09:07:27 898

原创 Pytorch搭建神经网络完成监督学习-回归任务

一、创建训练集要实现监督学习训练,我们首先要有训练集(trainning set)。我们用如下方法创建:import torchimport matplotlib.pyplot as pltimport torch.nn.functional as Ffrom torch.autograd import Variablebatch_n = 100#create training-setx = torch.linspace(-3, 3, batch_n).reshape(batch_

2021-01-28 22:38:29 1367

原创 OpenCV图像的基本操作

一、图像的截取把图像当作数组处理即可(宽度, 高度, 通道数)。import cv2img = cv2.imread('./cat.jpg', cv2.IMREAD_COLOR)subimg = img[0:800, 0:800]cv2.imshow('title', subimg)cv2.waitKey(0)cv2.destroyAllWindows()二、颜色通道提取与合并注意opencv中彩图为BGR图像,不是RGB。import cv2img = cv2.i

2021-01-28 22:06:43 157

原创 OpenCV图像、视频的读取与基本处理

一、图像读取、显示与写出 关于cv2.imread函数,第二个参数cv2.IMREAD_COLOR表示读取为RGB图像,cv2.IMREAD_GRAYSCALE表示读取为灰度图像import cv2def ShowImage(title, img): cv2.imshow(title, img) cv2.waitKey(0) #按任意键继续 cv2.destroyAllWindows()img = cv2.imread('./cat.jpg'...

2021-01-28 20:19:44 400

原创 opencv-python安装与测试

本人安装3.4.1.15版本。避免踩坑,不建议安装4.x版本!pip install opencv-python==3.4.1.15pip install opencv-contrib-python==3.4.1.15python代码测试是否安装成功import cv2 #引入opencv库print(cv2.__version__) #输出cv2版本...

2021-01-28 19:51:12 231

原创 Numpy常用函数汇总

import numpy as np #basic attributearray = np.array([[1, 2, 3], [2, 3, 4]])print(array) #print the np.arrayprint(array.ndim) #print the dimension of the np.arrayprint(array.shape) #print the shape of the np.arrayprint(array.size) #print the size .

2021-01-09 17:07:15 263 1

原创 严格次小生成树 洛谷P4180题解

先粘代码,后期更新原理。#include <cstdio>#include <cmath>#include <iostream>#include <algorithm>using namespace std;#define MaxN 100005#define MaxM 300005#define LogN 20#define INF 0x7fffffffffffffffLLint N, M;struct EDGE{ i

2021-01-05 15:28:50 128

原创 洛谷P1967题解

首先找出图中每个连通分量的最大生成树,然后在树上跑LCA。寻找LCA的时候寻找路径上的最小权值。#include <cstdio>#include <cmath>#include <iostream>#include <algorithm>using namespace std;#define MaxN 10005#define MaxM 50005#define LogN 20#define INF 0x7fffffffint N

2021-01-04 14:10:24 149

原创 洛谷P3379题解

树上LCA倍增板子题。#include <cstdio>#include <iostream>using namespace std;#define MaxN 500005#define MaxM 500005*2#define LogN 20int N, M, S;int point[MaxN], tot;int nxt[MaxM], v[MaxM];int deep[MaxN];bool flag[MaxN];int f[MaxN][LogN];

2021-01-04 12:36:52 144

原创 矩阵加速计算斐波那契数列

#include <cstdio>using namespace std;struct Matrix{ static const int MOD = 10007; int data[2][2]; Matrix(int data00, int data01, int data10, int data11){ data[0][0] = data00; data[0][1] = data01; data[1][0] = data10; d.

2021-01-03 12:05:18 1387 2

原创 洛谷P1991题解

要求最大值最小,不难想到使用二分法。我们每次二分一个“最大的D”,然后将大于D的边舍去,然后看一下去边后的图有多少个连通分量。连通分量的数目就是增配卫星电话的数目。至于求连通分量数目我们可以使用并查集。#include <cstdio>#include <algorithm>#include <cmath>using namespace std;#define MaxP 505int S, P;struct NODE{ double x,

2021-01-03 11:34:03 152

原创 洛谷P2872题解

我们假设图G是完全图,预先计算好所有边的权值并加入边集。for(int i = 1; i<=N; ++i) for(int j = i+1; j<=N; ++j){ edge[++cnt].x = i; edge[cnt].y = j; edge[cnt].w = cal_dis(i, j); }在读入输入数据已给的M条边时,直接进行并查集合并处理。 for(int i = 1

2021-01-03 11:33:35 205

原创 最小生成树算法总结【洛谷P3366】

一、Prim算法 Prim算法是一种以点集为出发点的最小生成树算法,它将无向图G中所有顶点V分成两个子集A、B。初始时,A中只包含一个随机选取的顶点u,其余顶点属于集合B。每次从集合B中选取一个顶点加入顶点A,该顶点是集合B到集合A中距离最小的一个点。直到V个顶点全部属于A,算法结束。算法时间复杂度O(n^2)。#define MaxN 5005int N, M;int G[MaxN][MaxN];bool flag[MaxN];int dis[MaxN];int Prim(...

2021-01-02 14:53:43 504

原创 实测!!论如何在OI赛场上提高程序运行速度

实测!!论如何在OI赛场上提高程序运行速度摘要:其实register、inline和读入优化大多数情况下并没有什么卵用,,目录:1.引子2.实验机基本信息3.inline关键字测试4.register关键字测试5.cin、scanf、快读三种读入方式的比较6.附:for循环中++i与i++两种写法的速度测试7.总结引子:据说变量前面加个regist...

2021-01-02 00:28:53 542 1

原创 他抛了27亿粒米粒儿近似计算出了圆周率

他抛了27亿粒米粒儿近似计算出了圆周率18世纪,法国数学家布丰曾用抛针法计算出了圆周率的近似值。今天,中国的一个造作男孩抛了27亿粒米粒儿也计算出了圆周率的近似值,他就是博主——AHJ一、理论基础布丰的计算方法在本质上是一种概率问题。接受过高中教育的童鞋应该都学习过几何概型。首先我们在地板上画出一个正方形的区域,并画出其内切圆。现在我们向这个正方形区域抛一个“米粒儿”,...

2021-01-02 00:13:27 681

原创 基于AJAX+PHP实现实时搜索实例

话不多说,直接切入重点。经过多次实践,我大体总结出了一个应用模板。主要有两个文件:前端index.html和后端livesearch.php组成。首先是前端,index.html,当然保存成index.php我也没有意见。<!DOCTYPE html><html lang="en"><head> <title>AJAX实时搜...

2021-01-02 00:13:07 240

原创 Windows10下python开发环境配置详解(Anaconda3 + Pycharm)

一、安装前准备1.安装测试环境:Windows 10 Pro x64(VirtualBox下模拟)2.安装包准备:(1)Anaconda3:清华园镜像下载链接(2)Pycharm-community:官方网站下载链接(外国网站,速度较慢,建议挂喂屁N)或移步某大佬分享的百度网盘链接链接:https://pan.baidu.com/s/1q8uMqAjaOtHAhBvyMZmWpA 提取码:nirf 复制这段内容后打开百度网盘手机App,操作更方便哦二、安装Anaconda

2021-01-02 00:02:15 1260

原创 CodeVS 2924 数独挑战 题解

#include #include using namespace std;int board[9+2][9+2];bool Const[9+2][9+2];bool row[9+2][9+2], col[9+2][9+2], pal[9+2][9+2];int PAL[9+2][9+2]={ {1, 1, 1, 2, 2, 2, 3, 3, 3}, {1, 1,

2021-01-02 00:01:56 386

原创 CodeVS 3344 迷宫 题解

#include #include #include using namespace std;const int dn[4]={-1, 0, +1, 0};const int dm[4]={0, +1, 0, -1};int N, M, ans;bool flag[100+2][100+2];char Map[100+2][100+2];bool word[26+2];s

2021-01-02 00:01:43 669

原创 CodeVS 1026 逃跑的拉尔夫 题解

#include #include #include #include using namespace std;const int dr[]={-1, 0, +1, 0};const int dc[]={0, +1, 0, -1};const char T[]="NESW";char Map[50+2][50+2];int flag[50+2][50+2];int R, C

2021-01-02 00:01:30 570

原创 POJ 1363 Rails 题解

#include #include #include using namespace std;int N;int order[1000+2];stackst;bool Work(){ int i = 1, j = 0; while(i<=N){ if(order[j]!=i && order[j]!=st.top()) st.push(i++); else if(o

2021-01-02 00:01:13 371

原创 CodeVS 1018 单词接龙 题解

#include #include #include #include #include using namespace std;int N, ans;char word[20+2][255+2], root;int connect[20+2][20+2];int cnt[20+2];void DFS(int n, int len){ for(int i = 0; i<N

2021-01-02 00:00:55 470

原创 CodeVS 1099 字串变换 题解

恩……正常来说第42行代码和第65行代码应该删去……但是被逼无奈……为了应对一组特殊数据耍了一点小聪明……但是呢,没有失大体,不是那种针对输入数据打表骗分……而是针对某组数据进行的剪枝恩……就说这么多,下附代码#include #include #include #include #include #include using namespace std;c

2021-01-01 11:52:40 337

原创 CodeVS 1710 生日蛋糕 题解

#include using namespace std;int N, M;int ans = ~0u>>1;bool flag;void DFS(int R, int H, int V, int S, int m){ if(S>ans)return; if(V>R*R*H*m)return; if(m && !V)return; if(!m && V)return; if

2021-01-01 11:52:24 542

原创 2.0版 CodeVS1099 字串变换 题解

昨晚十一点第一次完成这道题目……但是呢因为上次的算法用了一点“小聪明”,所以一直觉得不妥。于是今天下午绞尽脑汁地想怎么对广搜进行优化无意间看了一下老师的教案,发现这道题的分类竟然在“双向广搜”里面!!What??还有双向广搜这种东西??以前竟然从来没有听说过于是乎上网查了一下双向广搜是什么东西,用新的方法处理了这道题目。这次稳妥了。又Get了一个新技能,哈哈哈下附代

2021-01-01 11:52:07 388

原创 CodeVS 1094 FBI树 题解

#include #include using namespace std;int N;char s[1024+2];char FBI(int L, int R){ if(L == R){ if(s[L]=='0') {cout << 'B'; return 'B';} else if(s[L]=='1') {cout << 'I'; retu

2021-01-01 11:51:51 530

原创 CodeVS 1102 采药 题解

恩……最简单的01背包问题时间复杂度O(T*M)空间复杂度O(T)#include using namespace std;int T, M, t, v;int f[1000+2];int main() { scanf("%d %d", &T, &M); for(int i = 1; i<=M; ++i){ scanf("%d %d", &t, &v); for

2021-01-01 11:51:30 224

原创 CodeVS 1155 金明的预算方案 题解

分组背包问题时间复杂度:O(M*N/10)空间复杂度:O(N/10)#include #include using namespace std;int N, M;int v, p, q;int tmp, Sum, Max;struct THING{ bool Main; short int num; int Sum[4]; int V[4];}thing[60

2021-01-01 11:51:12 550

原创 CodeVS 1063 合并果子 题解

#include #include using namespace std;int a[10000+2];int N, ans;void Heap_adjust(int s, int e){ a[0] = a[s]; for(int i = s+s; i<=e; i += i){ if(i<e && a[i+1]<a[i]) ++i; if(a[i]>=a[0]) bre

2021-01-01 11:50:52 370

原创 [解法二] CodeVS1063 合并果子 题解

单调队列解法#include #include using namespace std;int N, a;int ans;priority_queue, greater >que;int main() { scanf("%d", &N); for(int i = 0; i<N; ++i){ scanf("%d", &a); que.push(a); } whil

2021-01-01 11:50:34 368

原创 NOIP2016 提高二试 蚯蚓 题解

根据题意,每次都选取长度最长的蚯蚓将其切开,这不由的让我们想到了大顶堆和优先队列(其实优先队列的实质也是堆),但这种做法的复杂度却达到了O[M*log(N+M)],将题目最大数据规模代入约为1.4亿,这显然无法在1s的时间内通过。那还有什么更好的算法能让我们快速的在一组数据中找到一个最大值呢?假设存在长度分别为a[ i ]和a[ j ]的蚯蚓,令其满足i=a[ j ](可以认为a[]数组是

2021-01-01 11:50:04 518

原创 2005年全国信息学分区联赛模拟赛 猫猫的小鱼 题解

第一题 猫猫的小鱼提交文件:catfish.pas/c/cpp输入文件:catfish.in输出文件:catfish.out  猫猫是丛林里很多动物心中的天使,她为此十分自豪。猫猫最爱吃鱼了,她每天都要去池塘钓鱼吃。猫猫经常吃鱼脑,数学特别强,然而,小女生的性格决定了她的贪玩。  一天,猫猫钓到了很多条鱼。她并不想马上就把可怜的鱼儿吃掉,而是先折磨够之后再吃(有句话叫什么来

2021-01-01 11:49:43 797

原创 使用Pytorch搭建简易神经网络

一、网络模型构建 本文将使用pytorch构建一个简易的神经网络,并使用梯度下降算法对模型进行监督学习训练。 本简易神经网络有一个数据输入层、一个隐藏层和一个数据输出层构成。其中,每个输入数据包含十个特征,可以认为输入数据是一个十维向量;经隐藏层处理后保留十五个特征,最后经数据输出层输出十个特征值。 无需考虑该神经网络的实际意义,本文仅对搭建神经网络作一示例。二、手动实现梯度下降 可以说是最朴素的方法了,手动实现梯度下降。batch_n是在一个批次中输入数据的...

2020-12-31 23:10:49 1673 4

空空如也

空空如也

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

TA关注的人

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