自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 双目三维重建(已知相机参数、二维坐标,重建得到三维坐标)

将重建得到的三维坐标,重新投影回二维,进行验证。这里只需要验证右侧相机(因为重建时以左侧相机为原点,所以左侧几乎不会有误差)。1、相机的内参(fx、fy、cx、cy)和相机之间的转换矩阵(包括旋转矩阵和平移向量)重建得到 以左侧相机为原点、其位姿为坐标轴的三维空间中,各个关键点的三维坐标。2、两个相机拍摄的图片上各个关键点的二维坐标(这里是21个关键点)。ps:这里没用畸变参数,可以在计算的时候再加一下畸变参数。

2024-04-09 10:31:11 790

原创 【强迫症】去掉QQ音乐下载后的歌曲路径里的中括号(Python)

我看这个文件名不爽很久了,于是写了个代码把它通通改掉了。

2023-12-25 23:45:54 436

原创 UmeTrack: Unified multi-view end-to-end hand tracking for VR 复现踩坑记录

在 github 上找到了开源代码:https://github.com/facebookresearch/UmeTrack/tree/main。

2023-09-04 14:31:10 555 3

原创 Github 下载指定文件夹(git sparse-checkout)

比如要下载这里的data_utils。

2023-09-04 12:07:55 1289

原创 Blender动作捕捉数据可视化速成

根据一个已有的bvh动作文件,使用软件Blender,将其可视化成人物的动作。调整bvh文件导入所得的人体骨架的大小,使其和人物模型差不多大。使用插件(第一次用需要注册账号),将模型绑定到动作骨架上。将人物模型(fbx)和bvh文件导入Blender。从Mixamo下载一个人物的t-pose模型。从github上下载Blender插件。

2023-04-01 14:18:06 1111 1

原创 Matplotlib画三维散点动图(代码及踩坑记录)

Matplotlib画三维散点动图,代码及踩坑记录。

2022-08-30 19:41:17 1236

原创 保研复习:数据结构(最短路)

多源最短路、单源最短路、两点之间最短路

2022-07-11 21:03:38 239

原创 保研复习笔记:概率论与数理统计

大数定律、中心极限定理;参数估计;假设检验

2022-07-11 16:04:37 1173

原创 保研复习笔记:线性代数

特征值、特征向量;相似矩阵;对称矩阵;二次型;正定矩阵

2022-07-10 13:26:33 652

原创 大数据实验四:并行化数据挖掘算法设计(Kmeans)

一、实验目的机器学习和数据挖掘算法是大数据分析处理领域的重要内容,随着数据规模的不断扩大,设计面向大数据处理的并行化机器学习和数据挖掘算法越来越有必要。通过对并行化数据挖掘算法的实现,掌握并行化处理问题的分析方法和编程思想方法,能够根据实际情况定制并行化的算法解决问题。二、实验平台1)操作系统:Linux(实验室版本为 Ubuntu17.04);2)Hadoop 版本:2.9.0;3)JDK 版本:1.8;4)Java IDE:Eclipse 3.8;5 ) Spark 版本:2.1.0。三

2022-05-20 08:47:01 1939

原创 吴恩达机器学习实验一(Python)

用notebook写的必做部分2.1 Plotting the Data#2.1 Plotting the Dataimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt data=pd.read_csv('ex1data1.txt',names=['x','y'])data_x=np.array(data['x'])data_y=np.array(data['y'])plt.figure()plt.s

2022-05-15 15:12:30 1135 1

原创 解决Image-Downloader运行报错 ‘DesiredCapabilities‘ has no attribute ‘PHANTOMJS‘

报错信息如下:在Image-Downloader项目文件夹下新建bin文件夹,并将下载好的对应版本chromedriver放进去。然后修改项目中的crawler.py文件的第27行,改成dcap = dict(DesiredCapabilities.CHROME)再次运行python image_downloader_gui.py就可以正常打开了。...

2022-04-16 15:19:00 2579 3

原创 记录一些使用阿里云ECS的过程

刚打开发现空空如也,啥都没有,但是可以用python。试来试去发现可以用yum install。然后试着安装了MySQL。参考了这篇博客。MySQL登入的命令是mysql -u root -pPS:可能需要先给服务器设置安全组,没有什么特殊要求可以直接全都勾上,然后点确认。...

2022-04-10 19:39:32 679

原创 记录一些学习Docker的过程

1、开始想在Win11上用Docker Desktop,但是装好了之后一直运行不了。尝试了好久,配wsl、hyper-v,反正试来试去就是成功不了。于是转战Linux了。2、Linux安装Docker(1)安装curlsudo apt install curl(2)安装Dockersudo curl -sS https://get.docker.com/ | sh(3)测试sudo docker run hello-world到目前为止的心得:报错的话就加sudo,还是报错的话就再运行

2022-04-09 18:41:23 900

原创 Java读取文件

如果要读取的文件和src在一个目录下就可以直接输文件名,不然得按相对路径往下找。import java.util.*;import java.io.*;public class HelloWorld { public static void main(String[] args) { try { FileReader in = new FileReader("./src/lab1/test.txt"); BufferedReader reader=new BufferedRe

2022-04-08 16:45:25 806

原创 大数据实验一:大数据系统基本实验(第四部分:NoSQL和关系数据库的比较)

一、 实验目的1)理解 4 种数据库(MySQL、HBase、Redis 和 MongDB)的概念及不同点。2)熟练使用 4 种数据库操作常用的 shell 命令。3)熟悉 4 种数据库操作常用的 Java API。二、 实验平台1)操作系统:Linux(Ubuntu18.04); 2)Hadoop 版本:2.9.0;3)MySQL 版本:5.7.28;4)HBase 版本:1.2.6;5)Redis 版本:4.0.8;6)MongDB 版本:3.2.21;7)JDK 版本:1.8;8

2022-04-08 09:57:13 4769

原创 大数据实验一:大数据系统基本实验(第三部分:熟悉常用的 HBase 操作)

一、 实验目的1)理解 HBase 在 Hadoop 体系结构中的角色。2)熟练使用 HBase 操作常用的 shell 命令。3)熟悉 HBase 操作常用的 Java API。二、 实验平台1)操作系统:Linux(Ubuntu18.04);2)Hadoop 版本:2.9.0;3)HBase 版本:1.2.6;4)JDK 版本:1.8;5)Java IDE:Eclipse 3.8。三、 实验内容1)编程实现以下指定功能,并用 Hadoop 提供的 HBase Shell 命令完成相

2022-04-07 22:54:23 4082

原创 大数据实验一:大数据系统基本实验(第五部分:MapReduce初级编程)

1)编程实现文件的合并和去重对于两个输入文件,即文件 A 和文件 B,请编写 MapReduce 程序,对两个文件进行合并, 并剔除其中重复的内容,得到一个新的输出文件 C。import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.Text;import org.apache.hadoop.m

2022-04-02 21:51:01 4752 4

原创 大数据实验一:大数据系统基本实验(第二部分:熟悉常用的 HDFS 操作)

1)向 HDFS 中上传任意文本文件,如果指定的文件在 HDFS 中已经存在,则由用户来指定是 追加到原有文件末尾还是覆盖原有的文件;package lab1;import java.io.*;import java.util.*;import java.net.*;import org.apache.hadoop.conf.*;import org.apache.hadoop.fs.*;import org.apache.hadoop.io.*;public class test1 {

2022-04-01 03:00:03 4143 3

原创 求小数的某一位

题目:分数a/b化为小数后,小数点后第n位的数字是多少?输入:三个正整数a,b,n,相邻两个数之间用单个空格隔开。0<a<b<100,1<=n<=10000。输出:一个数字。输入样例:1 7 6输出:7思路:需要注意n最大可以取10000,因此需要考虑如何处理a。因为当a、b均为整数时,a/b与(a-kb)/b小数部分必然一致,因此可以用a=a%b来减小a的大小。为了求第k位小数,需要做k次*10,之后a/b小数点前一位即为所求。#include &

2022-01-24 01:12:27 1292

原创 图形学实验二 光线追踪

实验二实验要求:编写一个光线追踪渲染程序。实现思路:参考ray tracing in one weekend学习如何实现光线追踪。实现了漫反射、镜面反射、折射。输出ppm格式的图片。项目包含以下部分:main.cpp 主程序camera.h 一个可以定义位置、视线方向、顶部朝向、视角大小、景深的相机vec3.h 定义向量,并实现与向量相关的运算ray.h 光线类hittable.h 物体抽象类sphere.h 球类,继承物体抽象类hittable_list.h 物体列表mate

2022-01-16 18:57:52 2699

原创 图形学实验三 贝塞尔曲线、旋转曲面、扫掠曲面

实验三实验要求:本次实验的内容主要为:绘制下面三种形状。贝塞尔曲线的绘制Surfaces of revolutionSweep Surfaces实现思路及实现结果:1、贝塞尔曲线用鼠标确定点,这里的点都是画出的曲线必须经过的点(为了实现和示例相似的效果)。将相邻的点连起来,所有点画完后,将首尾连接。由于贝塞尔曲线需要约束点,而按照上面的方法画图时没有人为设置约束点,因此需要计算约束点。每三个连续的点,可以确定出两个约束点。for (int i = 0; i < point_nu

2022-01-16 18:49:09 934

原创 图形学实验零 读取三角网格并交互

实验零实验要求:本次实验要求你熟悉OpenGL的配置和使用,读取三角形网格数据文件使用 OpenGL 绘制该模型(能够对模型进行平移、旋转)交互设定模型的两个位置和姿态,利用四元数 (quaternion) 对物体进行平滑的移动和旋转,使得物体在平移过程中能够平滑旋转。实现思路:读取.off文件。.off文件的主要内容包括顶点个数、三角面片个数、顶点位置、组成三角面片的三个顶点下标。通过读取并处理.off文件,画出模型。使用平移和旋转函数,对位置进行控制。在交互时,wsad对应平移,

2022-01-16 18:39:47 1667

原创 图形学实验一 火柴人走路

实验一实验要求:本实验要求实现层次结构, 实现一个火柴人的走路动作。要求至少要在实验中画出火柴人的如下结构:层次结构建模适用于机器人等应用程序,其中对象的动态行为由模型各部分之间的关系来表征。 我们可以用图抽象和直观地表示模型各部分之间的关系。 在数学上,图由一组节点(或多个顶点)和一组边组成。 边连接一对节点,或将一个节点与其自身相连。边也可以具有方向。这里使用的最重要的图的类型是树,用来表示物理模型关系。实现思路:通过读取并处理火柴人走路的BVH文件,实现火柴人走路的动作。BVH文件的主要

2022-01-16 18:33:54 675

原创 python脚本在目录下所有文件中进行字符串替换

循环,对每个文件:先读入,得到替换后的串,再写入import ospath="E:\\lab\\批量替换\\bvh\\"files=os.listdir(path)#获取文件名i=0print(len(files))for i in range(len(files)): with open(path+files[i],"r+") as f: data=f.read() #print(data) data=data.replace("Fra

2021-11-30 16:14:07 517

原创 matplotlib.animation绘制动图并保存

主要运用matplotlib.animation,保存动图的代码为:ani.save(“test.gif”, writer=‘pillow’)writer='pillow’不能不加。示例(根据matplotlib官网示例进行修改):import itertoolsimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationdef data_gen(): for c

2021-11-25 17:02:04 2680

原创 无gui服务器上使用matplotlib

在无gui服务器上使用matplotlib会报错:qt.qpa.screen: QXcbConnection: Could not connect to display localhost:10.0Could not connect to any X display.需要将matplotlib的backend修改成agg,即在画图前加入两行import matplotlibmatplotlib.use('Agg')#设置成无gui模式之后使用matplotlib.pyplot画图不会报错。但

2021-11-25 16:21:56 1094 1

原创 blender设置相对路径

blender脚本设置相对路径需要在路径前加上‘//’,比如相对路径为‘./music.mp3’,则需要写成‘//.music.mp3’。

2021-11-25 00:45:52 1083

原创 blender脚本渲染输出有背景音乐的视频

在blander中添加背景音乐有两种方式,一种是用视频序列编辑器,一种是直接添加一个扬声器对象。在此处采取添加扬声器的方法。给扬声器添加音频的时候需要进行一些奇怪的操作。直接添加,共享用户有两个,需要创建单用户副本。 bpy.ops.object.speaker_add(enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1)) bpy.ops.sound.open_mono(filepath="E:

2021-11-25 00:40:46 2646

原创 四元数slerp插值绕远的处理方法

在很多资料上都可以找到四元数slerp插值的公式:qt=Slerp(q0,q1,q2)=sin((1−t)θ)sinθq0+sin(tθ)sinθq1q_t = Slerp(q_0,q_1,q_2) = \frac{sin((1-t)\theta)}{sin\theta}q_0+\frac{sin(t\theta)}{sin\theta}q_1qt​=Slerp(q0​,q1​,q2​)=sinθsin((1−t)θ)​q0​+sinθsin(tθ)​q1​其中,θ=cos−1(q0,q1)\theta

2021-11-10 22:46:32 864

原创 python爬虫爬取文本(以免费网站的小说为例)

参考了一篇爬取豆瓣250榜单的代码。# -*- codeing = utf-8 -*-from bs4 import BeautifulSoup # 网页解析,获取数据import re # 正则表达式,进行文字匹配import urllib.request, urllib.error # 制定URL,获取网页数据prestr="<div class=\"content\">"poststr="\\n<!-- /content -->\\n<div clas

2021-11-10 00:37:27 2302 8

原创 操作系统实验Mit6.S081笔记 Lab7:Multithreading

Uthread: switching between threads (moderate)要求:在本练习中,您将为用户级线程系统设计上下文切换机制,然后实现它。为了让您开始,您的 xv6 有两个文件 user/uthread.c 和 user/uthread_switch.S,以及 Makefile 中用于构建 uthread 程序的规则。uthread.c 包含大部分用户级线程包,以及三个简单测试线程的代码。threading 包缺少一些用于创建线程和在线程之间切换的代码。您的工作是制定一个计划来创

2021-10-11 16:46:11 1802

原创 解决conda install库报错Solving environment:failed with initial frozen solve. Retrying with flexible solve

输入:conda config --add channels conda-forgeconda config --set channel_priority flexible参考:https://blog.csdn.net/The_Time_Runner/article/details/99848728下Was_husben的评论

2021-10-11 10:53:39 1032

原创 操作系统实验Mit6.S081笔记 Lab6: Copy on-write

xv6中的fork()系统调用将父进程的所有用户空间内存复制到子进程中。 如果父节点很大,复制可能需要很长时间。 更糟糕的是,这些工作往往大部分都被浪费了; 例如,子进程中的fork()后跟exec()将导致子进程丢弃复制的内存,可能根本不会使用其中的大部分内存。 另一方面,如果父母和孩子都使用一个页面,并且其中一个或双方都写了它,那么副本是非常必要的。写时拷贝(COW) fork()的目标是推迟为子进程分配和复制物理内存页,直到实际需要拷贝(如果需要的话)。COW fork()只为子进程创建一个可分页

2021-10-06 17:38:44 772 1

原创 操作系统实验Mit6.S081笔记 Lab5: Lazy allocation

O/S使用页表硬件可以使用的许多巧妙技巧之一是延迟分配用户空间堆内存。 Xv6应用程序使用sbrk()系统调用向内核请求堆内存。 在我们给出的内核中,sbrk()分配物理内存并将其映射到进程的虚拟地址空间。 内核为大型请求分配和映射内存可能需要很长时间。 例如,考虑一个千兆字节由262,144个4096字节的页组成; 这是一个巨大的分配数量,即使每一个都是便宜的。 此外,一些程序分配的内存比它们实际使用的内存要多(例如,实现稀疏数组),或者在使用之前分配内存。 为了让sbrk()在这些情况下更快地完成,复杂

2021-10-02 09:37:06 2763 1

原创 操作系统实验Mit6.S081笔记 Lab4: Traps

RISC-V assembly (easy)要求:理解一点RISC-V组装是很重要的,这在6.004中已经介绍过了。 在您的xv6 repo中有一个文件user/call.c。 fs.img编译它,并在user/call.asm中生成程序的可读汇编版本。阅读call.asm中函数g、f和main的代码。RISC-V的使用说明书在参考页。 这里有一些你应该回答的问题(将答案存储在文件answers-traps.txt中):Backtrace (moderate)要求:对于调试来说,使用回溯跟踪通常

2021-09-27 14:37:19 1096 1

原创 操作系统实验Mit6.S081笔记 Lab3: Page tables

Print a page table要求:定义一个名为vmprint()的函数。 它应该接受一个pagetable_t参数,并以下面描述的格式打印该可分页对象。 在exec.c中,在return argc之前插入if(p->pid==1) vmprint(p->pagetable),打印第一个进程的页表。提示:把vmprint()放在kernel/vm.c中。使用kernel/riscv.h文件末尾的宏。可使用函数freewalk。在kernel/defs.h中定义vmprint的

2021-09-23 16:06:33 1680

原创 leetcode刷题笔记 1221.分割平衡字符串【简单】

栈int balancedStringSplit(string s) { stack<int> st; int num = 0; int count = 0; for (char i : s) { if (st.empty()) { st.push(i); count++; num++; } else { char t

2021-09-07 21:50:56 63

原创 leetcode刷题笔记 295.数据流的中位数【困难】

1、二分按顺序插入class MedianFinder {private: vector<int> v; double mid = 0;; int size = 0;public: MedianFinder() { } void addNum(int num) { v.insert(lower_bound(v.begin(), v.end(), num), num); size++; if

2021-08-27 09:32:47 164

原创 leetcode刷题笔记 881.救生艇【中等】

int numRescueBoats(vector<int>& people, int limit) { int res = 0; sort(people.begin(), people.end()); int n = people.size(); int left = 0, right = n - 1; while (left <= right) { if (people[right] + people[left] <= limit) { res++;

2021-08-26 22:08:27 85

空空如也

空空如也

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

TA关注的人

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