自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风源-

记录自己的学习过程,当回过来再看时会发现满满的收获。

  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 两张图像配准

两张图片的校准,用来做红外相机核rgb相机的空间配准。# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'myqt5.ui'## Created by: PyQt5 UI code generator 5.15.6## WARNING: Any manual changes made to this file will be lost when pyuic5 is# run again.

2022-04-15 17:24:23 871

原创 CUDA加速图像融合

在这篇文章之前我们已经介绍过一篇图像拼接过程中使用CUDA加速融合,但是还存在着一些不足,需要配置C++的一些编译环境,这个比较麻烦,实际应用麻烦一些。本文在这里借助python、pytorch、cuda来完成图像拼接的这一过程,使用python进行图片的预处理,然后通过torch上传到cuda,调用cuda进行融合。这个过程较为简单,而且效率极高。1. 首先使计算两张图片的单应性矩阵并将一张图片想另一种图像上做投影变换,这个没什么需要解释的,直接上代码。def stitch(path1, path2)

2022-04-15 17:02:40 5226 3

转载 CUDA 网格(Grid)、线程块(Block)和线程(Thread)的组织关系以及线程索引的计算公式

网格(Grid)、线程块(Block)和线程(Thread)的组织关系CUDA的软件架构由网格(Grid)、线程块(Block)和线程(Thread)组成,相当于把GPU上的计算单元分为若干(2~3)个网格,每个网格内包含若干(65535)个线程块,每个线程块包含若干(512)个线程,三者的关系如下图:Thread,block,grid是CUDA编程上的概念,为了方便程序员软件设计,组织线程。thread:一个CUDA的并行程序会被以许多个threads来执行。block:数个threads会被群

2022-04-15 15:43:37 2982 1

转载 解决git下载出现:Failed to connect to 127.0.0.1 port 1080: Connection refused拒绝连接错误

文章目录 1.问题描述2.解决方法 1.问题描述 在修改git代理后再运行git push -u origin master时出现如下问题: git: Failed to connect to 127.0.0.1 port 1080: Connec...

2021-12-08 20:09:35 2519

转载 mysql语句练习50题

转载于 https://www.cnblogs.com/kangxinxin/p/11585935.html1 表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号–3.教师表Teacher(t_id,t_name) –教师编号,教师姓名–4.成绩表Score(s_id,c_id,s_score) –学生编号,

2021-10-25 19:58:40 276

转载 python如何读取&生成voc xml格式标注信息

python生成voc xml文件from lxml import etree class GEN_Annotations: def __init__(self, filename): self.root = etree.Element("annotation") child1 = etree.SubElement(self.root, "folder") child1.text = "VOC2007" child2 =

2021-09-17 17:42:34 524

原创 互斥锁和条件变量实现生成者消费者队列

介绍几个概念互斥量 mutexmutex是一个类,创建一个mutex mtx对象,在需要加锁的代码前后加上mtx.lock()和mtx.unlock(),实现互斥锁的加锁和解锁。但是在加锁和解锁的代码中间可能会出现异常,导致没有进行解锁。为了解决这个问题引入了两种锁类型(将加锁和解锁作为一个原子性的操作,同智能指针类似,超过使用范围自动解锁):lock_guard,与Mutex RAII相关, 方便对互斥量上锁unique_lock, 与Mutex RAII相关, 方便对互斥量上锁,同时提供了

2021-08-25 15:57:52 114

转载 36进制加法

#include <iostream>#include <string>#include <vector>using namespace std;char getChar(int n){ if(n<=9) return n + '0'; else return n - 10 + 'a';}int getInt(char ch){ if('0'<=ch && ch<='9') return ch -

2021-08-24 18:50:26 159

转载 C++ 单例模式总结与剖析

目录C++ 单例模式总结与剖析一、什么是单例二、C++单例的实现2.1 基础要点2.2 C++ 实现单例的几种方式2.2.1 有缺陷的懒汉式2.2.2 线程安全、内存安全的懒汉式单例 (智能指针,锁)2.2.3 最推荐的懒汉式单例(magic static )——局部静态变量2.2.4 函数返回引用2.3 单例的模板2.3.1 CRTP 奇异递归模板模式实现2.3.2 不需要在子类声明友元的实现方法2.3.3 函数模板返回引用三、何时应该使用或者不使用单例反对单例的理由参考文章C++ 单例模式总结与剖.

2021-08-24 17:00:50 123

原创 c++实现string类

#include <iostream>#include <cstring>using namespace std;class mystring{public: mystring(const char *str = nullptr){ if(str==nullptr){ data = new char[1]; data[0] = '\0'; len = 0; }el

2021-08-24 16:40:36 81

原创 拓扑排序c++

拓扑排序判断无向图中是否有环#include<iostream>#include<vector>#include<queue>using namespace std;void TopSort(vector<vector<int>>& grid, vector<int>& indegree){ queue<int> q; for(int i=0; i<indegree.siz

2021-07-31 17:00:35 105

转载 CFS完全公平调度

一直对CFS(Completely Fair Scheduling,完全公平调度)中的虚拟运行时间(vruntime)不太理解,最近在看cgroup中的cpu子系统算是搞清楚了它是怎么回事。 先 简单说一下CFS调度算法的思想:理想状态下每个进程都能获得相同的时间片,并且同时运行在CPU上,但实际上一个CPU同一时刻运行的进程只能有一个。 也就是说,当一个进程占用CPU时,其他进程就必须等待。CFS为了实现公平,必须惩罚当前正在运行的进程,以使那些正在等待的进程下...

2021-07-25 14:48:55 338

原创 c++处理输入遇到空行结束

在笔试时经常需要我们处理输入输出,有时会出现输入空行(就是只有一个换行符)时结束输入。这个时候就需要我们判断一下了。在这里记录一下;#include <iostream>#include <string>using namespace std;int main(){ string str; while(getline(cin, str)) { // getline读取一整行,str不含换行符号 if(str

2021-07-25 00:14:31 4638 1

原创 c++实现LRU

#include<iostream>#include<vector>#include<algorithm>#include<unordered_map>using namespace std;struct DLinkedNode{ int key, value; DLinkedNode* prev; DLinkedNode* next; DLinkedNode(): key(0), value(0), prev(n

2021-07-21 20:57:20 123

原创 c++实现简单的unordered_map

#include <iostream>#include <string>#include <queue>using namespace std;class HashFunc{public: int operator()(const int key){ return 3*key + 1; }};template <class Key, class Value>class HashNode{public:

2021-07-21 20:56:26 451

原创 设置代理联网

proxy反向代理首先用户更改自己bash的环境变量vim .bashrc输入以下两行()export http_proxy=http://114.212.85.102:808export https_proxy=https://114.212.85.102:808git也需要代理设置代理git config --global http.proxy http://114.212.85.102:808git config --global https.proxy https://114.2

2021-05-26 20:01:43 438

转载 Ubuntu16.04系统中创建新用户

转载于 https://blog.csdn.net/timothy93bp/article/details/77679000 Ubuntu16.04系统中创建新用户 本文基于Linux的Ubuntu系统新建一个普通用户,linux系统的用户名为peng, 主机名为

2021-04-16 20:48:35 180

原创 最小生成树 C++简洁实现

1.普利姆算法时间复杂度#include<iostream>#include<algorithm>#include<vector>using namespace std;int prime(vector<vector<int>>& edge){ int n = edge.size(); vector<bool> visit(n, false); vector<int> dis(

2021-04-11 20:56:45 513

原创 算法:螺丝螺母问题

给你一堆螺母和螺帽,每个螺母都有一个相对应的螺帽,但是他们之间的对应关系已经打乱。你可以比较螺母和螺帽的大小关系,但是你无法比较螺母和螺母的大小关系,你也无法比较螺帽和螺帽的大小关系。设计一个算法,找出螺母和螺帽的对应关系。#include<iostream>#include<vector>using namespace std;void quicksort(vector<int>& a, vector<int>& b, int le

2021-03-19 16:40:01 1889

原创 priority_queue自定义排序

方法1:// 按pair的第二个元素降序排列 static bool cmp(pair<int,int> a, pair<int, int> b){ return a.second > b.second;}priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(&cmp)> q(cmp);方法2: struct cmp1{

2021-03-01 22:58:57 2982

转载 超简单的ubuntu下安装teamview教程

1、去官网下载安装包。官网链接:(https://www.teamviewer.com/zhcn/download/linux/) 2、在命令行进行安装 (在下载文件夹下打开命令行,输入:sudo dpkg -i  teamviewer_13.0.6634_amd64.deb)(teamviewer_13.0.6634_amd64.deb为安装包名,根据自己安装包) su...

2021-01-07 14:39:24 1510

原创 论文:Weakly Supervised Data Augmentation Network for Fine-Grained Visual Classification

本篇论文主要使用了数据增强的方法,和一般图片随机的翻转,裁剪的方法不同,本文提出了一种基于注意力机制的数据增强方法。通过基础网络提出图片的特征图确定目标的大致位置,同时根据特征图生成一个注意力图(attention maps)来表征对象的显著特征部分,随机选择一张注意力图,通过注意力剪裁和注意力删除的方式去增强这张图片(即只保留一个局部特征和只删除一个局部特征),最后原图和增强对数据都会被作为输入数据进行训练。对生成的特征图和注意力图进行BAP(双线性注意力池化)获得全部的局部特征后进行分类。本篇文章的

2020-12-24 15:24:01 581

原创 论文:Learning a Discriminative Filter Bank within a CNN for Fine-grained Recognition

Abstract与早期使用CNN特性的多阶段框架相比,最近采用的端到端深度精细识别方法从本质上提高了CNN的中层学习能力。以前的方法是通过引入一个辅助网络将定位信息注入到主分类网络中,或者通过一个复杂的特征编码方法来获取更高阶的特征统计量来实现这一点。我们证明了中层表示学习可以在CNN框架内得到增强,通过学习一组卷积滤波器来捕获特定的类别有区别的patch而不需要额外的部分或边框标注。该滤波器组具有良好的结构、适当的初始化和鉴别学习,通过一种带有卷积滤波器监督和非随机层初始化的新型非对称多流结构。实验结果

2020-12-15 20:13:42 368 1

转载 cuda9.0 安装 pytorch1.2 以及torch.cuda.is_available()=false的解决办法

服务器 cuda9.0.x 安装 pytorch1.2 稳定版 :执行 conda install pytorch torchvision cudatoolkit=9.0 -c pytorch 安装cuda9.0对应的pytorch,相应的,cuda版本号应该可以任意更改。在这里插入图片描述参考:https://blog.csdn.net/mamemory/article/details/100526991l...

2020-12-14 19:49:30 602

转载 PIL,plt显示tensor类型的图像

该方法针对显示Dataloader读取的图像。PIL 与plt中对应操作不同,但原理是一样的,我试过用下方代码Image的方法 # 方法1:Image.show() # transforms.ToPILImage()中有一句 # npimg = np.transpose(pic.numpy(), (1, 2, 0)) # 因此pic只能是3-D Tensor,所以要用image[0]消去batch那一维 # 原作者的我运行失败,改成下面这样 img = transforms.ToPILImag

2020-12-13 15:41:08 3639

原创 处理Stanford cars数据集用于目标检测训练

处理cars_annos.mat文件:提取去数据集的类型名称提取出序号, 图片名, 类别, 属于测试集还是训练集import scipy.io# 提取标签def process1(): data = scipy.io.loadmat('./data/cars_annos.mat') class_names = data['class_names'] f_class = open('label_map.txt1', 'w') num = 1 fo..

2020-12-10 18:51:21 2281

原创 剑指 Offer 07. 重建二叉树

剑指 Offer 07. 重建二叉树题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例:例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7限制:0 <= 节点个数 <= 5000解题思路:方法一:递归二叉树前序遍历:根、左、右

2020-11-29 16:04:03 78

原创 剑指 Offer 06. 从尾到头打印链表

剑指 Offer 06. 从尾到头打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解题思路:正向遍历一遍链表,依次将值存入栈中。遍历完成后,依次弹出栈中的数据元素将其存放入数组中。时间复杂度O(n),空间复杂度O(n)。还可以直接遍历一次链表,将元素依次使用头插法插入到vector数组中,不过由于头插法要移动后面所有的元素,效率不

2020-11-28 16:01:40 88

原创 Leetcode 题解 - 排序

参考:https://github.com/CyC2018/CS-Notes快速选择堆1. Kth Element桶排序1. 出现频率最多的 k 个元素2. 按照字符出现次数对字符串排序荷兰国旗问题1. 按颜色进行排序快速选择用于求解 Kth Element 问题,也就是第 K 个元素的问题。可以使用快速排序的 partition() 进行实现。需要先打乱数组,否则最坏情况下时间复杂度为 O(N2)。堆用于求解 TopK Elements

2020-11-28 15:44:13 113

原创 Leetcode 题解 - 数组与矩阵

参考:https://github.com/CyC2018/CS-Notes1. 把数组中的 0 移到末尾2. 改变矩阵维度3. 找出数组中最长的连续 14. 有序矩阵查找5. 有序矩阵的 Kth Element6. 一个数组元素在 [1, n] 之间,其中一个数被替换为另一个数,找出重复的数和丢失的数7. 找出数组中重复的数,数组值在 [1, n] 之间8. 数组相邻差值的个数9. 数组的度10. 对角元素相等的矩阵11. 嵌套数组12. 分隔数组1. 把数组中的 0 移

2020-11-28 15:39:40 176

原创 Leetcode 题解 - 栈和队列

参考:https://github.com/CyC2018/CS-Notes1. 用栈实现队列2. 用队列实现栈3. 最小值栈4. 用栈实现括号匹配5. 数组中元素与下一个比它大的元素之间的距离6. 循环数组中比当前元素大的下一个元素1. 用栈实现队列232. Implement Queue using Stacks (Easy)Leetcode / 力扣栈的顺序为后进先出,而队列的顺序为先进先出。使用两个栈实现队列,一个元素需要经过两个栈才能出队列,在经过第一个栈时元素顺序被反

2020-11-28 15:36:38 96

原创 Leetcode 题解 - 贪心思想

1. 分配饼干2. 不重叠的区间个数3. 投飞镖刺破气球4. 根据身高和序号重组队列5. 买卖股票最大的收益6. 买卖股票的最大收益 II7. 种植花朵8. 判断是否为子序列9. 修改一个数成为非递减数组10. 子数组最大的和11. 分隔字符串使同种字符出现在一起参考:https://github.com/CyC2018/CS-Notes保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。1. 分配饼干455. Assign Cookies (Easy)Leet..

2020-11-28 15:33:59 172

原创 Leetcode 题解 - 双指针

1. 有序数组的 Two Sum2. 两数平方和3. 反转字符串中的元音字符4. 回文字符串5. 归并两个有序数组6. 判断链表是否存在环7. 最长子序列参考:https://github.com/CyC2018/CS-Notes双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。1. 有序数组的 Two Sum167. Two Sum II - Input array is sorted (Easy)Leetcode / 力扣Input: numbers={2..

2020-11-28 15:29:47 281

原创 Leetcode 题解 - 树

递归1. 树的高度2. 平衡树3. 两节点的最长路径4. 翻转树5. 归并两棵树6. 判断路径和是否等于一个数7. 统计路径和等于一个数的路径数量8. 子树9. 树的对称10. 最小路径11. 统计左叶子节点的和12. 相同节点值的最大路径长度13. 间隔遍历14. 找出二叉树中第二小的节点层次遍历1. 一棵树每层节点的平均数2. 得到左下角的节点前中后序遍历1. 非递归实现二叉树的前序遍历2. 非递归实现二叉树的后序遍历3. 非递归实现二叉树的中..

2020-11-27 20:57:54 82

原创 Leetcode链表系列

1. 找出两个链表的交点2. 链表反转3. 归并两个有序的链表4. 从有序链表中删除重复节点5. 删除链表的倒数第 n 个节点6. 交换链表中的相邻结点7. 链表求和8. 回文链表9. 分隔链表10. 链表元素按奇偶聚集链表是空节点,或者有一个值和一个指向下一个链表的指针,因此很多链表问题可以用递归来处理。1. 找出两个链表的交点160. Intersection of Two Linked Lists (Easy)Leetcode / 力扣例如以下示例中 A 和 B 两..

2020-11-27 20:51:01 183

原创 Leetcode 二分查找系列

1. 求开方2. 大于给定元素的最小元素3. 有序数组的 Single Element4. 第一个错误的版本5. 旋转数组的最小数字6. 查找区间正常实现Input : [1,2,3,4,5]key : 3return the index : 2int binarySearch(vector<int> nums, int key) { int l = 0, h = nums.size() - 1; while (l <= h) { ..

2020-11-27 20:45:24 127

原创 剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000解题思路:方法一最容易想到的就是从头到尾扫描字符串,每次碰到空格字符的时候进行替换。由于1个字符替换成3个字符,就必须把空格后的所有字符都后移2位。时间复杂度为O(n^2)方法二首先从头到尾扫描空格字符的个数n,将字符串s的空

2020-11-27 20:18:24 125

原创 剑指 Offer 04. 二维数组中的查找

剑指 Offer 04. 二维数组中的查找题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23,

2020-11-27 19:38:18 144

原创 剑指offer 3. 找出数组中重复的数字

剑指offer 3. 找出数组中重复的数字题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字,如果没有重复的数字则返回-1。示例输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 解题思路:最简单的方法就是将数组排序,然后从头到尾扫描排序后的数组即可。所用的时间复杂度取决于排序算法,一般为O(nlogn),空间复杂度为O(1)。

2020-11-27 19:06:45 95

原创 leetcode搜索系列

BFS1. 计算在网格中从原点到特定点的最短路径长度2. 组成整数的最小平方数数量3. 最短单词路径DFS1. 查找最大的连通面积2. 矩阵中的连通分量数目3. 好友关系的连通分量数目4. 填充封闭区域5. 能到达的太平洋和大西洋的区域Backtracking1. 数字键盘组合2. IP 地址划分3. 在矩阵中寻找字符串4. 输出二叉树中所有从根到叶子的路径5. 排列6. 含有相同元素求排列7. 组合8. 组合求和9. 含有相同元素的组合求和10. ..

2020-11-16 20:21:06 242

OpenCV官方教程中文版For Python.pdf

OpenCV官方教程中文版For Python, opencv第二版,与opecv3有点差别,不过大部分都还可以用。

2019-08-13

空空如也

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

TA关注的人

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