自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 Centos系统概况

Centos系统概况脚本#!/bin/bash#系统名称;os_type=$(uname -o | awk '{print $0}')#系统位数;32/64os_bit=$(uname -m | awk '{print $0}')#内核发型版本kernal_version=$(uname -r | awk '{print $0}')#系统版本信息sys_info=$(cat /etc/redhat-release)#物理CPU个数:cpu_actual_number=$(ca

2021-11-18 16:17:36 171

转载 CMOS图像传感器基本原理

概念CMOS称为互补式金属氧化物半导体(Complementary Metal-Oxide-Semiconductor,缩写作 CMOS),是一种集成电路的设计工艺,可以在硅质晶圆模板上制出NMOS(n-type MOSFET)和PMOS(p-type MOSFET)的基本元件,由于NMOS与PMOS在物理特性上为互补性,因此被称为CMOS。CMOS可用来制作电脑电器的静态随机存取内存、微控制器、微处理器与其他数字逻辑电路系统以及用于光学仪器上,如CMOS图像传感器。图像传感器的作用是将入射光(光子)

2021-08-21 22:12:29 11606 1

原创 CMake笔记

记录CMake使用的基本场景,来自《CMake Practice》,默认使用外部编译。main.c#include<stdio.h>int main(int argc,char **argv){ printf("Hello World!\n"); return 0;}hello.h#include<stdio.h>void func();hello.c#include"hello.h"void func(){ printf("He

2021-08-01 17:06:44 130

原创 CentOS网络配置

显示网络配置ifconfig配置文件路径/etc/sysconfig/network-scripts该目录下的文件主要有:ifcfg-bond0、ifcfg-eno1和ifcfg-eno2ifcfg-bond0DEVICE=bond0BOOTPROTO=staticDOMGING_MASTER=yesONBOOT=yesTYPE=bondingIPADDR=[IP地址]NETMASK=[子网掩码]GATEWAY=[网关]DNS1=0.0.0.0DNS2=0.0.0.0

2021-06-30 21:03:30 580

原创 PCL-FPFH特征检测_匹配_位姿估计

近期课题中需要使用PCL进行点云处理,故而学习了一下PCL点云算法库。使用了PCL中的FPFH特征检测,之后利用SAC-IA算法对两个点云进行初始配准。原理可以官方讲解或者大佬的博客。Function.cpp#include <Eigen/Core>#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include <pcl/common/time.h>#include <pcl/

2020-12-08 19:31:48 1528

转载 循环中使用fork的问题

一直对于循环语句中调用fork创建子进程的过程不甚了解,直到在笔试中遇到了一道题目,因此简单做下笔记。原题:#include<stdio.h>#include<unistd.h>int main(int argc,char **argv){ for(int i=0;i<2;++i) { fork(); printf("*"); } return 0;}请问输出了多少个*。当时写的是6个,但事后测试发现是8个。因此在CSDN上找大佬寻求解答。

2020-09-16 20:32:17 1327

转载 Windows10+Visual Studio2017+PCL1.9.1

只做简单记录,方便以后查看。。。参考:https://blog.csdn.net/weixin_41991128/article/details/83864713环境Windows10Visual studio2017PCL1.9.1安装PCL下载PCL相关文件PCL-1.9.1-AllInOne-msvc2017-win64.exepcl-1.9.1-pdb-msvc2017-win64.zip安装PCLexe文件,然后将OpenNI2安装在D:\PCL 1.9.1\3rd

2020-09-07 20:37:50 213

转载 Ubuntu18.04配置乐视LeTMC-520深度相机

为了之后方便查看,特此记录!参考:https://blog.csdn.net/qq_36219010/article/details/96559248环境Ubuntu18.04ROS:echo ${ROS_DISTRO}安装依赖sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros ros-$RO

2020-08-22 22:13:18 3146 3

原创 求0-1矩阵的连通图—种子法

本文使用种子法来对二值图进行连通域分析。关键判断连通域的首元素(在原图中值为1,且在标记图中没有被标记过)对于每个连通图,使用栈或者队列循环遍历容器中的每一个元素,通过判断每个元素的4邻域或者8邻域元素是否满足本邻域,来更新容器label标签的更新位置0-1矩阵示例class MyPoint{public: MyPoint(int _x, int _y) : x(_x), y(_y) {} ~MyPoint() {} MyPoint(const MyPoint &

2020-08-20 21:10:51 675

转载 图像分割-区域分裂合并算法

原文:https://www.jianshu.com/p/fa573431ef3d区域分裂合并法:区域分裂合并法是一种图像分割算法。 它与区域生长法略有相似之处,但无需预先指定种子点,而是按某种一致性准则分裂或者合并区域。分裂合并法对分割复杂的场景图像比较有效。算法的思想并不复杂,总的来说,就是先把图像分成4块,若这其中的一块符合分裂条件,那么这一块又分裂成4块,就这样一直分裂。分裂到一定数量时,以每块为中心,检查相邻的各块,满足一定条件,就合并。如此循环往复进行分裂和合并的操作。最后合并小区,即

2020-08-14 09:40:25 13369 2

原创 最小二乘法计算平面度

在已知平面内数据点的三维坐标的情况下,求解平面方程的参数。已知平面的方程式为:z=ax+by+cz=ax+by+cz=ax+by+c通过深度相机检测到平面上的n个点云数据。通过最小二乘法,可以求解平面的参数:a,b,ca,b,ca,b,c,进而求解平面度。本文假定测量数据为:#-- coding:UTF-8 --#空间平面的方程:z = ax + by + c#目标:求解a,b,c的值#已知条件:12个被测点的三维坐标import numpy as npp=[[0,0,3.52],

2020-08-14 09:30:57 10821 7

原创 图像分割-区域生长算法的实现

采用区域生长法作为图像分割方法,它的基本原理是将相同特征的像素点归为一类。并且这些特征在针对具体应用的实现中可以是灰度值、像素梯度等(同时作为比较的对象,即可以选择最初的种子,也可以动态选择邻域的中心)。作为区域增长的起点(种子)的选择同样重要,根据图像的复杂情况,可以选择多个点作为初始值,当有多个种子,在区域增长时,需要考虑相同特征像素点的合并问题。因此最终分割对象的数量要小于等于种子数量。优缺点分析:优点:思想相对简单,可以分割出封闭的区域,在复杂环境下有较好的分割效果;缺点:对噪声敏感,会造

2020-08-13 21:57:51 3768

原创 使用OpenCV和socket传输图片

Server.cpp#include <unistd.h>#include <sys/socket.h>#include <arpa/inet.h>#include <stdio.h>#include <stdlib.h>#include <opencv2/opencv.hpp>const int PORT = 5678; //端口号//const char *IP = "192.168

2020-08-11 19:30:07 2150

原创 线性代数-基础知识

相似三角形可逆矩阵

2020-08-08 22:39:40 174

转载 select、poll和epoll

select原理IO多路复用之select总结select的调用过程如下所示:使用copy_from_user从用户空间拷贝fd_set到内核空间注册回调函数__pollwait遍历所有fd,调用其对应的poll方法(对于socket,这个poll方法是sock_poll,sock_poll根据情况会调用到tcp_poll,udp_poll或者datagram_poll)以tcp_poll为例,其核心实现就是__pollwait,也就是上面注册的回调函数。__pollwait的主要工作就是

2020-08-08 22:17:25 741

原创 使用socket实现简单的TCP和UDP通信模型

本文使用socket实现服务器和客户端之间简单的TCP和UDP通信。TCP通信模型服务器端:1. socket(); //创建TCP类型的套接字2. bind(); //绑定地址(选择服务器任意可用的IP地址)3. listen(); //设置监听上限4. accept(); //阻塞监听来自客户端的连接请求5. recv(); //从套接字中读取数据,可用read()代替6. //数据处理模块7. send(); //向套接字中写数据,可用write()代替8. close(); .

2020-08-08 22:06:30 360

原创 交替打印A和B-线程同步(信号量)

本文使用值为0的信号量实现两个线程同步,交替打印A和B#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <semaphore.h>#include <string.h>typedef void *(*Func)(void *); //使用typedef定义函数指针sem_t sem;

2020-08-08 21:42:45 835

原创 李群与李代数的推导

1 李群与李代数的转换关系本文主要对特殊正交矩阵SO(3) 和特殊欧式群SE(3) 以及其对应的李代数进行讨论。1.1 已知条件假设已知李群与李代数之间的指数映射关系:SO(3)和so(3)R=exp(ϕ∧)R = exp(\phi^{\wedge})R=exp(ϕ∧)其中RRR为李群(3阶矩阵),在此处的物理意义可以表示为旋转矩阵;ϕ\phiϕ为李代数(3维向量),此处的物理意义可以...

2020-08-08 21:20:06 748 1

原创 Linux开发环境配置C++

查看Linux环境变量使用命令export或者env即可查看当前系统的全部环境变量使用echo ${PATH}命令既可查看PATH环境变量的值注:PATH环境变量存放系统运行命令的查找路径,以冒号分割不同的路径。修改Linux环境变量方法一:在命令行执行export PATH=/home/uusama/mysql/bin:$PATH,该方法只对当前终端有效并且立即生效,窗口关闭后失效。方法二:终端输入vim ~/.bashrc,在打开的文件为后输入export PATH=$PATH:/ho

2020-08-08 21:11:07 249

原创 常见的流媒体协议

一、基本概念在认识流媒体协议之前,我们首先需要简单了解点播和直播的概念。点播是通过摄像设备首先将录制完的视频上传到服务器,供用户下载和播放,因此通信的两端为:视频文件和播放器;直播是在摄像设备拍摄过程中,直接将视频发送至播放器端,进行播放,保证了视频的时效性。直播中视频数据的传输就需要使用流媒体技术。(百度百科)流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就

2020-07-14 20:21:40 1401

原创 使用最速梯度法和牛顿法实现开方运算的数值求解

这边默认步长为:0.005。后期需完善/*/*本例程用于实现开方运算的迭代求解分别使用最速梯度法和牛顿法x = exp(A)x* = argmin{f(x)} = argmin{(x^2-A)^2 = x^4 -2*A*x^2 + A^2}f'(x) = 4*x^3-4*A*xf''(x) = 12*x^2-4*A*/#include<iostream>#i...

2019-12-29 20:34:48 168 2

原创 高阶稀疏矩阵的迭代求解方法

对于特定的矩阵,若该矩阵恰好为方阵,且该nnn阶矩阵含有nnn个不同的特征值或者该矩阵的nnn个特征向量线性无关。则对该矩阵可以采取EVD分解。但是对于更一般的情况,我们需要将特征分解推广到奇异值分解(SVD)。 奇异值分解是一个适用于任意矩阵的一种分解方法。SVD定义对于矩阵AN×MA_{N\times M}AN×M​,SVD分解结果为:A=UΣVTA = U\Sigma V^TA...

2019-12-28 11:12:20 5173

转载 四元数基础

原文链接

2019-12-22 11:47:24 251

原创 证明:旋转矩阵是正交矩阵

正交矩阵定义:设AAA为nnn阶方阵,如果ATA=IA^{T}A = IATA=I或AAT=IAA^T = IAAT=I,就称AAA为正交矩阵。性质:正交矩阵的每一个列向量都是单位向量,且向量之间两两正交。正交矩阵的行列式为1或者-1.A−1=ATA^{-1} = A^TA−1=AT(充要条件)旋转矩阵选准矩阵描述了坐标系之间的旋转变换,由3×33\times 33×3矩阵描述。...

2019-12-14 17:00:02 15268 5

原创 PCL-简介

PCL概述PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信...

2019-12-03 20:08:01 4710

原创 QR分解

QR分解法QR分解法,将原矩阵Am×nA_{m\times n}Am×n​分解成一个正交矩阵Qm×nQ_{m\times n}Qm×n​(QTQ=IQ^{T}Q = IQTQ=I)和一个上三角矩阵Rn×nR_{n\times n}Rn×n​(对角线下面的元素全为0)的乘积。QR分解主要有三种方法:Gram-Schmid正交化法、Household变换法、Givens变换法。1 Gram-S...

2019-11-29 08:17:16 13689 3

转载 Shell基本语法

拼接字符串#【1】使用双引号#! /bin/bashMy_first="Qiu"My_second="Kai"My_name="My name is ${My_first}${My_second}!"echo ${My_name}My_name1="My name is "${My_first}${My_second}echo ${My_name1}#【2】使用单引号My_na...

2019-11-11 19:23:25 5623

原创 Markdown基础语法

斜体与加粗 {#index}语法:*斜体* 或者 _斜体_**粗体** 或者 __粗体__***斜体并加粗*** 或者 ___斜体并加粗___~~删除~~显示效果:斜体 或者 斜体粗体 或者 粗体斜体并加粗 或者 斜体并加粗删除分级标题语法:# 一级标题## 二级标题### 三级标题#### 以此类推显示效果:一级标题二级标题三级标题以此类推超链...

2019-11-09 18:56:35 120

原创 3. 并行计算-OpenMP

3. 并行计算-OpenMP隐式并行程序设计常用传统的语言编程成顺序源编码,把“并行”交给编译器实现自动并行语言容易,编译器难显示并行程序设计在用户程序中出现“并行”的调度语句语言难,编译器容易3.1 OpenMP简介OpenMP是共享存储体系结构上的一个并行编程模型。适合于SMP共享内存多处理系统和多核处理器体系结构。支持的编程语言包括C、C++和Fortra...

2019-11-09 18:49:20 427

原创 2. MPI简介

2. MPI简介MPI其实就是一个“库”,共有上百个函数调用接口,但是最常用的只有6个,只需通过使用这6个函数就可以完成几乎所有的通信功能。这六个函数分别为:MPI_Init函数、MPI_Comm_size函数、MPI_Comm_size函数、MPI_Send函数、MPI_Recv函数、MPI_Finalize函数。MPI是基于消息传递的并行计算模式,与 pthread,openMP等共...

2019-11-09 18:41:45 530

原创 1. 并行计算-概述

1. 并行计算-概述基本术语:结点(Node): 也就是一个独立的“计算机单元”。通常由多个CPU处理器/处理内核,内存,网络接口等组成。结点联网在一起以构成超级计算机。中央处理器/套接字/处理器/核(CPU / Socket / Processor / Core): 在过去,中央处理器通常是计算机中的一个单个执行单元。之后多处理器被植入到一个结点中。接着处理器又被设计成为多核,每个核成为...

2019-11-09 18:33:53 1948

原创 Window系统基础篇-快捷键和CMD命令

1. Window系统基础篇-快捷键按该键执行操作Ctrl+X剪切Ctrl+C复制Ctrl+V粘贴Alt+Tab在打开应用之间切换Alt+F4关闭活动项Windows+L锁屏Windows+D显示和隐藏桌面F2重命名所选项目F3在资源管理器中搜索F5刷新活动窗口F6循环浏览窗口中或桌面上的屏幕元...

2019-11-09 13:54:04 157

转载 Vim工具的使用

6. Linux系统基础-Vim工具的使用vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;vim可以分为三种状态,分别是一般模式、编辑模式和命令行模式6.1 一般模式以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左...

2019-11-09 13:49:31 196

转载 Linux常用快捷键和命令

5. Linux系统基础-常用快捷键和命令5.1 常用快捷键命令功能Tab自动完成你输入的内容Ctrl + C中断命令或进程Ctrl + Z将正在运行的程序送到后台Ctrl + D退出当前终端Ctrl + L清空终端屏幕Ctrl + A将移动光标到所在行首Ctrl + E移动光标到行尾Ctrl + U擦除从当前光标位...

2019-11-09 13:25:20 499

原创 Ubuntu软件管理方法

4. Linux系统基础-Ubuntu软件管理方法Ubuntu下管理软件的四种方法:apt、dpkg、源码、snap4.1 apt 方法apt是建立在dpkg之上的软件管理工具,apt会解决和安装模块的依赖问题,并会咨询软件仓库, 但不会安装本地的deb文件。1.搜索软件:sudo apt-cache search package_name //可以使用正则表达式 sudo apt...

2019-11-09 11:37:23 752

原创 远程登录Linux服务器

3.Linux系统基础-远程登录服务器Linux系统中是通过ssh服务实现的远程登录功能,默认ssh服务端口号为 22。Window系统上 Linux 远程登录客户端有SecureCRT, Putty, SSH Secure Shell等,本文以Putty为例来登录远程服务器。3.1 方法一:服务器IP+Port输入要登录的用户,root输入密码3.2 使用密匙认证机制远程登...

2019-11-09 11:26:32 262

PCDPLYdata.rar

包含常用的几个点云示例文件,blade、bunny、dragon、hand、happy、horse,包含这些文件的PCD格式和PLY格式

2019-12-03

空空如也

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

TA关注的人

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