自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git使用技巧

rebase & merge先说结论,rebase比较适用于私人分支,可以把主干分支上其他人开发的功能拉到自己的分支上,并且是一条线;merge则主要适用于主分支,可以将其他人的代码合并上去,因为要保留主分支的完整历史记录。Merge​ rebasesquash主要用于合并commit,简化分支。交互式重排示例:# 进行交互式重排,假设重排最近的...

2024-07-19 18:37:00 794

原创 SDF Line相关公式推导

SDF Line相关公式推导线段是SDF形状的基元之一,可以被用来建模一些形状,比如昆虫的腿,植物的根茎等。下面这篇文章介绍一下Line公式的推导,首先记住我们要求的变量,点到形状最近的距离。那么对于空间中的点\(P_1, P_2, P_3\),他们的分布有如下三种其中\(P_1\)到线段的距离是\(|\vec{P_1Q}|\),\(P_2\)到线段的距离是\(|\ve...

2024-07-15 10:51:00 624

原创 SDF矩形(附圆角)公式推导

SDF矩形(附圆角)公式推导矩形一般情况下,我们会使用(top_left, top_bottom), (width, height)来定义一个矩形,但是对于SDF而言,使用(centerX, centerY), (HalfSizeX, HalfSizeY)会更方便一些。假设一个矩形,我们先定义原点在(0, 0),那图像如下:记住要计算的内容:点与形状最近边缘之间的距离。那么会出现两种...

2024-07-10 18:01:00 388

原创 使用世界变换的逆转置矩阵对法线进行变换

法向量变换细节记录最近在做法向量变换的时候,踩了两个坑,记录一下相关的知识点法向量做变换,最后一位是补0我们知道,顶点在做变换的时候最后一位是 1.0,法线最后一位是补0.0vec3 normCurrent = (getMatrixWorld() * vec4(normCurrent, 0.0)).xyz; // 法线变换vec3 pointCurrent = (getMatrixWo...

2024-06-30 10:09:00 324

原创 从上下文切换谈thread_local工作原理

从上下文切换谈thread_local工作原理thread_local是什么熟悉多线程编程的小伙伴一定对thread_local不陌生,thread_local 是 C++11 引入的一种存储类说明符,用于定义每个线程都有其独立实例的变量。每个线程对这些变量有自己的副本,而不共享其他线程的副本。这在多线程编程中非常有用,确保线程之间的数据隔离,防止数据竞争。但是thread_local的表...

2024-06-04 20:53:00 279

原创 Shader作画

代码运行网站:http://editor.thebookofshaders.com/// Author @CuriosityWang// https://www.cnblogs.com/curiositywang#ifdef GL_ESprecision mediump float;#endiffloat ColA = 0.028;float RowA = 0.033;un...

2024-05-31 14:55:00 177

原创 使用Shader画常见的数学函数

使用Shader画常见的数学函数本篇博文的灵感来自于Shader Books这一小节:https://thebookofshaders.com/05/?lan=ch代码运行网站:http://editor.thebookofshaders.com/一次函数\[y = x + 0.5\]#ifdef GL_ESprecision mediump float;#endifunifo...

2024-05-30 22:01:00 414

原创 深入浅出CPU眼中的函数调用&栈溢出攻击

深入浅出CPU眼中的函数调用——栈溢出攻击原理解读函数调用,大家再耳熟能详了,我们先看一个最简单的函数:#include <stdio.h>#include <stdlib.h>int func1(int a, int b){ int c = a + b; return c;}int main(){ int res = func1(); ...

2024-05-30 21:58:00 255

原创 VS Code Runner 插件配置

VS Code Runner 插件配置Code Runner插件是一个小而美的插件,可以很方便的运行一些简单的代码文件。本篇博文记录一些相关的环境配置。设置C++编译标准这里可以设置默认的C++标准设置每次运行清除输出...

2024-04-09 20:45:00 178

原创 C++ <atomic>汇编语言实现原理

C++ <atomic>汇编语言实现原理问题我们先看一下这段代码:/* * badcnt.c - An improperly synchronized counter program *//* $begin badcnt *//* WARNING: This code is buggy! */#include "csapp.h"void *thread(voi...

2024-03-20 22:02:00 374

原创 CSAPP学习笔记——chapter5 优化程序性能

编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。对于这第二点,理解优化编译器的能力和局限性是很重要的。编写程序方式中看上去只是一点小小的变动,都会引起编译器优化方式很大的变化。有些编程语言比其他语言容易优化。C语言的有些特性,例如执行指针运算和强制类型转换的能力,使得编译器很难对它进行优化。程序员经常能...

2024-01-30 21:32:00 442

原创 CSAPP学习笔记——chapter4 处理器体系结构

本篇博文将结合第四章 处理器体系结构介绍这个实验

2024-01-30 21:21:00 387

原创 python 列表删除元素,单个元素,多个连续或不连续元素

python 列表删除元素,单个元素,多个连续或不连续元素

2024-01-30 17:10:04 556 1

原创 Typora + picgo + Chevereto 优雅地上传图片

搭建自己的图床,书写markdown

2024-01-30 17:08:07 389 1

原创 CSAPP学习笔记——Chapter10,11 系统级I/O与网络编程

本篇博文介绍了《深入理解计算机系统中》Unix I/O,以及网络编程章节的一些概念,之所以合在一起介绍是因为Unix I/O在网络编程中会用到。同时我们观察到此时的echo服务器统一时刻只能处理一个客户端的连接。下一章的并行编程我们会对echo服务器进行拓展,基于并发的理论使其能够同时处理多个连接。

2024-01-30 17:06:36 737 1

原创 图像拼接算法技术报告

本篇博客先是介绍了图像拼接的一般流程,然后给出了自己手写方法和opencv官方代码的对比,最后在探索小节通过阅读opencv的源码解释了为什么动态物体出现时我的会有鬼影,而opencv stich不会,本质上是算法的思想不同。

2024-01-30 16:57:22 1208 1

原创 CSAPP学习笔记——chapter8 异常控制流

本篇博文介绍了现代操作系统中异常的一些概念,我们常见的系统调用其实也是异常的一种,内核会先保存调用者的上下文,进入内核模式,执行系统调用,当执行完毕之后,再去恢复调用者的上下文,继续执行,另外还有中断,陷阱等,这些是操作系统和硬件层面的异常;而对于进程层面的异常,则主要围绕信号这一抽象概念,包括接受信号和处理信号,最后介绍了有关信号安全的知识,还引出了一个如何有效释放进程资源的例子。

2024-01-29 16:20:54 801

原创 Linux如何从命令行卡死的进程中退出?

基于信号的定义介绍如何关闭命令行程序

2024-01-29 16:07:46 863

原创 BandiZip无广告版安装

*Bandizip* 是一款压缩软件,它支持Zip、7-Zip 和 RAR 以及其它压缩格式。它拥有非常快速的压缩和解压缩的算法,从大学用到现在,但是现在最新的版本在每次压缩时会推送广告。因此记录一个老版本的安装方式

2024-01-29 10:19:50 1389

原创 远程服务器画面GUI传输到本地显示

这篇文章主要介绍`远程服务器(Ubuntu系统)`的GUI画面传输到`本地(本地Ubuntu或者Windows)`显示的方法。

2024-01-29 10:18:10 445

原创 CSAPP学习笔记——Chapter12 并行编程

本篇博文介绍了并发编程的相关知识,基于进程的并发,它的缺点主要是进程之间通信的成本过高;基于I/O多路复用的并发,主要缺点是编写困难;而基于线程的并发是最常用的,先是用其扩展了echo服务器,使其能够同时处理多个连接请求,然后再结合生产者消费者模型进行了进一步的拓展。最后介绍了有关线程安全的一些概念。

2024-01-28 10:56:26 972

原创 3.14 + 1e10 - 1e10 = 0 ? ——浮点数的本质

介绍IEEE浮点数表示

2024-01-27 23:09:51 1044

原创 CSAPP学习笔记——Chapter10,11 系统级I/O与网络编程

本篇博文介绍了《深入理解计算机系统中》Unix I/O,以及网络编程章节的一些概念,之所以合在一起介绍是因为Unix I/O在网络编程中会用到。同时我们观察到此时的echo服务器统一时刻只能处理一个客户端的连接。下一章的并行编程我们会对echo服务器进行拓展,基于并发的理论使其能够同时处理多个连接。

2024-01-27 22:44:42 885

原创 CSAPP学习笔记——chapter9 虚拟内存

这一章主要介绍了现代操作系统中虚拟内存的概念,先是介绍了虚拟内存的一般概念,这一部分我将在本文第一小节进行一个串联;第二部分介绍了内存映射,并以Linux为例,介绍了fork函数,execve函数的实现细节;第三部分则是介绍了动态内存分配,程序员通过如`malloc`, `new`, `free`, `delete`等语言特定的函数和操作符来控制,重点介绍了动态内存分配器如何维护进程的堆区域。

2024-01-27 22:41:22 899 1

原创 Opencv环境配置一览

OpenCV环境配置一览专业相关,平时经常会使用到opencv的一些函数,目前主要包括Ubuntu系统,Android系统,本篇文章介绍在两个系统下对应的环境配置策略。Ubuntu环境附上一个很好用的脚本,一键安装###################################### INSTALL OPENCV ON UBUNTU OR DEBIAN ############...

2023-11-19 12:48:00 22

原创 保存深度值——小端序,位数,Android,Huawei AR engine

保存深度值——小端序,位数,AndroidaccuireDepthImage华为Mate Pro系列基本上前置摄像头都是有TOF的,也就是能够得到场景的深度信息,在华为的AR engine里提供了一个方法可以读取场景的深度值。不过其官方文档里对这个方法的介绍很少,寥寥数语,前期也在这里踩了一些坑。Google的AR core对这个深度值做了详细的介绍:得到的深度图是16位的,其中高...

2023-11-15 22:09:00 30

原创 151. 反转字符串中的单词

LeetCode题目:https://leetcode.cn/problems/reverse-words-in-a-string/description/class Solution {public: void reverse(string& s, int start, int end){ //翻转,区间写法:左闭右闭 [] for(;start < ...

2023-10-07 11:11:00 14

原创 Towards Accurate Alignment in Real-time 3D Hand-Mesh Reconstruction论文解读

Towards Accurate Alignment in Real-time 3D Hand-Mesh Reconstruction论文解读这是发表在ICCV2021的一篇文章,主要的工作内容是RGB图像人手重建。Introduction单目下的3D人手重建是计算机视觉中一个非常具有挑战性的任务,并且在人机交互,以及增强现实领域有着很高的应用价值;紧接着作者提出如果想要把一个人手重建的...

2023-09-24 16:10:00 39

原创 Ubuntu截屏工具推荐

Ubuntu截屏工具推荐本篇博文推荐Ubuntu下的截屏工具Flameshot,可以作为Windows下Snipaste截图工具的平替。GitHub地址:https://github.com/flameshot-org/flameshot安装sudo apt updatesudo apt install flameshot快捷键截图贴图安装之后点击应用图标就可以截图了,下面介绍如...

2023-09-04 17:11:00 45

原创 《视觉SLAM十四讲》第13讲 设计SLAM系统 回环检测线程的实现

《视觉SLAM十四讲》第13讲 设计SLAM系统 回环检测线程的实现这个学期看完了高翔老师的《视觉SLAM十四讲》,学到了很多,首先是对计算机视觉的基本知识有了一个更加全面系统的理解,其次是动手去做实验的过程中,也更加理解了很多有关g2o,opencv,sophus等等工具的使用。在第13讲的实践部分,高翔老师已经写好了一个基本SLAM框架的前端,后端部分,因此本篇博文主要记录第三个线程回环...

2023-07-27 16:41:00 278

原创 Ubuntu更换cuda版本,gcc,g++版本

Ubuntu更换cuda版本,gcc,g++版本更换cuda版本这个比较简单可以看到 /usr/local下面有一个软链接,更换到我们需要的版本即可,cuda对应版本安装可参考官网。创建软连接:(创建之前先删除之前的软连接,然后创建新的软连接)sudo rm -rf cudasudo ln -s /usr/local/cuda-11.3 /usr/local/cuda更换gcc...

2023-07-21 16:15:00 110

原创 ORB算法介绍 Introduction to ORB (Oriented FAST and Rotated BRIEF)

Introduction to ORB (Oriented FAST and Rotated BRIEF)1. IntroductionORB(Oriented FAST and Rotated BRIEF)是一种广泛应用于计算机视觉领域的特征描述算法。它结合了FAST角点检测算法和BRIEF描述子算法,以实现高效且具有旋转不变性的特征提取和匹配。ORB算法的主要特点如下:旋转不变性,...

2023-07-07 09:35:00 45

原创 g2o优化库实现曲线拟合

g2o优化库实现曲线拟合最近学习了一下g2o优化库的基本使用,尝试着自己写了一个曲线拟合的函数,也就是下面这个多项式函数:\[y = ax^3 + bx^2 + cx + d\]我们以 \(a = 3, b = -2, c=5, b=7\)为例,拟合出的图像大概长这样。下面简单记录一下思路:目标函数:\[\min _{a, b, c,d} \frac{1}{2} \sum_{i=1...

2023-06-06 17:05:00 20

原创 记录一个命令 可以在linux很方便的安装一些软件

小鱼的一键安装系列wget http://fishros.com/install -O fishros && . fishros一键安装:ROS(支持ROS和ROS2,树莓派Jetson) 贡献@小鱼一键安装:VsCode(支持amd64和arm64) 贡献@小鱼一键安装:github桌面版(小鱼常用的github客户端) 贡献@小鱼一键安装:nodejs开发环境(通...

2023-05-27 17:25:00 10

原创 视觉SLAM十四讲——有关相机运动的汇报

视觉SLAM十四讲——有关相机运动的汇报大概用了一个月的时间看完slam十四讲,里面很多内容算是填坑了很多以前遇到的不懂的点,并且脑海里也大致有了一个关于SLAM的框架,现在就这篇文章将其中相机运动估计的部分进行一个介绍。SLAM是什么?SLAM的英语全称是Simultaneours Localization and Mapping,中文译作“同时定位与地图构建”。它是指搭载特定传感器...

2023-04-11 10:37:00 28

原创 Ubuntu修改启动顺序以及系统时间同步问题

Ubuntu修改启动顺序以及系统时间同步问题修改启动顺序选择要优先启动的序号,从0开始计数修改配置文件sudo vim /etc/default/grub使用这个命令刷新一下sudo update-grub系统时间同步问题为了解决双系统的时间不能同步问题sudo apt updatesudo apt install ntpdatesudo ntpdat...

2023-04-03 09:26:00 14

原创 Ubuntu给Appimage创建快捷方式

下载 AppImageLauncher2.安装3.选择要运行的Appimage双击运行即可。他会在home目录下创建一个applications文件夹,并且帮你自动创建快捷方式。

2023-03-27 11:28:00 37

原创 Linux+Typora+Picgo图床配置

Linux+Typora+Picgo图床配置首先不建议安装在UbuntuStore里的版本,会有一些限制。首先安装node.js去官网下载编译好的源码,配置软连接,使全局都可以使用node命令。sudo ln -s /usr/local/node/bin/node /usr/bin/node --将node源文件映射到usr/bin下的node文件sudo ln -s /usr...

2023-03-24 17:29:00 14

原创 视觉SLAM第四讲李群与李代数习题

视觉SLAM第四讲李群与李代数习题一、验证\(SO(3)、SE(3)、SIM(3)\)关于乘法成群首先引入一下群的定义。群 (Group) 是一种集合加上一种运算的代数结构。我们把集合记作 \(A\), 运算记作 \(.\),那么一个群可以记作 \(G=(A, \cdot)\) 。群要求这个运算满足以下几个条件:封闭性: \(\forall a_1, a_2 \in A, \qua...

2023-03-24 11:51:00 13

原创 使用自制离线数据跑通ElasticFusion

使用自制离线数据跑通ElasticFusion实验环境及设备实验环境:Ubuntu22.04RTX3060实验设备:小米13(Android)Realsense D455一句话总结就是,使用我的手机连接realsense去室外录制相关离线数据(.bag格式),然后转换成ElasticiFusion的.klg格式进行三维重建。过程中还是遇到了不少坑的,比如深度图的尺度以...

2023-03-13 16:55:00 24

空空如也

空空如也

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

TA关注的人

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