自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ubuntu 20.04安装搜狗输入法无法输入中文

根据搜狗输入法官网进行安装后,依然无法输入中文,这是由于缺少所需要的依赖。

2022-07-09 15:15:48 995 1

原创 Linux使用Kazam录制的视频无法在Windows上播放

转换编码格式:ffmpeg -i points_removed.mp4 -pix_fmt yuv420p -c:a copy -movflags +faststart out.mp4

2022-04-25 21:44:09 1060

原创 Kinect + ROS TUM数据制作

文章目录1. 环境配置1. 安装驱动2. 设置环境变量2. 录制rosbag包2.1 启动相机2.2 测试相机2.3 录制3. 提取rosbag包4. 生成rgb.txt 与 depth.txt5. RGB-D相机标定5.1 标定板角点提取5.2 相机内参5.3 ROS包-kinectv1 -- camera_calibration5.3.1 标定板下载5.3.2 相机和标定程序5.3.3 标定深度相机1. 环境配置1. 安装驱动sudo apt-get install ros-indigo-fre

2022-03-04 20:52:36 2251 1

原创 数据结构_1

文章目录0.算法和算法分析1.链表2.静态链表3.顺序栈4.链式顺序栈5.队列5.1 顺序循环队列5.2队列的链式存储6. 二叉树6.1 二叉树的创建7.图7.1 无向图邻接矩阵7.2 邻接表7.3 图的遍历7.3.1 深度优先遍历7.3.2 广度优先遍历8. 查找8.1 顺序查找算法8.2 有序查找8.2.1 折半查找8.2.2 插值查找8.2.2 斐波那契查找8.2 线性索引查找8.2.1 稠密索引8.2.2 分块索引8.2.3 倒序索引8.3 二叉排序树8.3.1 二叉排序树-查找8.3.2 二叉排序

2022-02-26 14:33:29 1124 1

原创 Ubuntu系统备份

1. ubuntu系统备份此部来源 https://www.codenong.com/cs106785272/使用tar压缩保存到移动硬盘:参数:-c: 新建一个备份文档-v: 显示详细信息-p: 保存权限,并应用到所有文件-z: 用gzip压缩备份文档,减小空间-f: 指定备份文件的路径-exclude: 排除指定目录,不进行备份Note: 注意–exclude参数,可以使相应的目录不进行备份/proc:一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录

2021-12-24 14:41:46 3557

原创 重新安装opencv,踩坑。

1. 问题一../../lib/libopencv_ts.a(ts_gtest.cpp.o): In function `testing::internal::RE::~RE()':ts_gtest.cpp:(.text._ZN7testing8internal2RED2Ev+0xf): undefined reference to `regfreeA'ts_gtest.cpp:(.text._ZN7testing8internal2RED2Ev+0x18): undefined reference

2021-12-15 20:13:10 5540

原创 ubuntu 16.04无法上网

1. 状态首先查看网络连接状态:(base) mrzhao@mrzhao-haier-dt:~$ ifconfig enp1s0 Link encap:Ethernet HWaddr 94:c6:91:9a:34:7e inet addr:10.102.4.172 Bcast:10.102.127.255 Mask:255.255.128.0 inet6 addr: 2001:da8:4002:3010:d135:52d0:8a79:5f99/6

2021-11-21 15:30:17 3131 1

原创 #pragma comment(lib,“urlmon.lib“)

#include <tchar.h>#include <iostream>#include <string>#include <urlmon.h>/** #pragma comment(lib,"urlmon.lib") 作用:* 连接静态库 urlmon.lib到项目中:效果等同于:* 项目属性--连接器--输入--附加依赖项加入这个lib;* * //!不需要将urlmon.lib 文件或 urlmon.dll 文件添加到项目文件中*

2021-11-09 16:27:52 838

转载 计算机视觉基础 (34)-世界坐标

文章目录0、预备概念1.相机模型所涉及的坐标系介绍1. 世界坐标系2. 相机坐标系3. 图像物理坐标系(为推出像素坐标系引入,为过渡项)4. 图像像素坐标系二、为什么需要世界坐标系?三、实践中,相机世界坐标系的指定1、单目相机2、双目相机写在前面:此部分内容来自:知乎:diversity文章链接:https://zhuanlan.zhihu.com/p/346131786对于刚接触相机模型的同学来说,会从各个渠道被告知 相机模型中的世界坐标系是假想坐标系,可以被任意选取,当然这种描述是简洁且正确

2021-10-24 10:26:04 529

转载 计算机视觉基础 (3)-坐标变换

图像处理、立体视觉等等方向常常涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。例如下图:

2021-10-24 09:53:27 599

原创 计算机视觉基础(2)-几何变换

文章目录1、 平移变换(Translation)1、二维空间2、三维空间2、 缩放变换(Scaling)1、二维空间2、三维空间3、 旋转变换(Rotation)1、 向量旋转1.1 平面二维旋转1.2 三维旋转1.3 助记2、 坐标系旋转2.1平面二维旋转2.2 三维旋转在三维图形学中,几何变换大致分为三种,平移变换(Translation),缩放变换(Scaling),旋转变换(Rotation)。1、 平移变换(Translation)1、二维空间在二维空间中一个点[x,y],移动到另一个点[

2021-10-23 12:30:15 1628 1

原创 计算机视觉基础(1)-齐次坐标(Homogeneous Coordinates)

文章目录1 、问题:两条平行线可以相交于一点2、方法:齐次坐标3、为什么叫齐次坐标4、证明:两条直线可以相交写在前面:齐次坐标就是用N+1维来代表N维坐标的一种形式,具有尺度不变性。在欧氏几何空间中每一个点都是具有唯一的表示,例如(1/3,2/3),但是在投影空间中表示是不同的,可以表示为(1/3,2/3,1),(1,2,3),(2,4,6)…(1a,2a,3a);但是转换到欧式空间中,均表示是同一个点(1/3,2/3),所以说他们是齐次的,或者我们可以 根据 Homogeneous :即 同质的;

2021-10-22 15:44:59 1679 1

原创 相机模型_

1.我们通常说的针孔模型是一个极度简化的模型,其简化的对象是「单一的薄透镜作为镜头的相机」,其含义是:在适当程度近似后,一个单一的薄透镜作为镜头的相机,其光学行为一定程度上近似于一个针孔相机。首先看看薄透镜成像,这个在中学里都学过,大致可以用下图说明...

2021-10-21 17:32:53 183

原创 二维码的生成解码以及HTTP测试

1.二维码的生成需要的库QR Code generator library#include <climits>#include <cstdint>#include <cstdlib>#include <cstring>#include <iostream>#include <sstream>#include <string>#include <vector>#include <fst

2021-10-19 21:18:04 1304

原创 临时对象与编译优化

TODO;

2021-10-15 10:46:24 158

原创 添加默认右键菜单

1. 设置默认菜单 this->setContextMenuPolicy(Qt::ContextMenuPolicy::DefaultContextMenu);2. 重写虚函数void contextMenuEvent(QContextMenuEvent *event);3. 例子//this->setContextMenuPolicy(Qt::ContextMenuPolicy::DefaultContextMenu); widgetMenu=new QMenu(this)

2021-10-14 17:07:25 105

原创 Qt颜色提取

int x = QCursor::pos().x(); int y = QCursor::pos().y(); QWindow window; QPixmap pixmap=window.screen()->grabWindow(QApplication::desktop()->winId(),x,y,1,1); qDebug()<<pixmap<<endl; int red, green, blue; i...

2021-09-26 22:06:17 521

原创 设计模式!

文章目录1. 单例模式2. 工厂模式3.观察者模式4. 装饰器模式5.命令模式1. 单例模式单例模式: 单例模式主要解决一个全局使用的类频繁的创建和销毁的问题. 单例模式下可以确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式有三个要素:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。2. 工厂模式工厂模式: 工厂模式主要解决接口选择的问题。该模式下定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,使其创建过程延迟到子类

2021-09-25 11:21:47 67

原创 拷贝(复制)构造函数与赋值重载运算符=

文章目录1. 拷贝构造函数2.总结1. 拷贝构造函数#include <iostream>#include <list>#include <vector>#include <random>using namespace std;class Construct{public: Construct(){ std::cout<<"构造函数:Construct()"<<std::endl; }

2021-09-22 16:57:07 197

原创 逻辑运算位运算

文章目录1. 逻辑运算1. 逻辑与 &&2. 逻辑或 ||3. 逻辑非 !1. 逻辑运算何为真? : 一切非零值为真;何为假?: 0 代表假;1. 逻辑与 &&当且仅当两个运算对象为真(非零)时结果为真;int x=100;int y=50;cout<<(x&&y)<<endl; //1int x=100;int y=0;cout<<(x&&y)<<endl; //02

2021-09-17 16:02:22 402

原创 网络通信TCP/IP

文章目录1.简述FTP工作流程2.同步I/O和异步I/O本质区别3.TCP和UDP的区别及TCP怎么保证传输的可靠性4.短链接和长链接的区别5.Tcp0、tcp 协议介绍1、TCP三次握手2、TCP四次挥手3、流量控制4、阻塞控制5、为什么是3次握手?6、为什么是4次挥手?7、为什么要进入TIME_WAIT状态等待2MSL?8、TCP协议握手时是否可以携带数据,可以在第几次握手时携带?9、第三次握手中,如果客户端的ACK未送达服务器,会怎样?10、如果已经建立了连接,但客户端出现了故障怎么办?11、初始序列

2021-09-08 22:41:11 1310 3

原创 大端存储与小端存储

1. 什么是大端和小端Little-Endian就是低位字节存放在内存的低地址端,高位字节存放在内存的高地址端。Big-Endian就是高位字节 存放在内存的低地址端,低位字节存放在内存的高地址端。即:低低高高为小端,高低低高为大端;例如:0x12345678的小端存储为:1)大端模式:低地址 -----------------> 高地址0x12 | 0x34 | 0x56 | 0x782)小端模式:低地址 ------------------> 高地址0x7

2021-09-05 22:12:16 3645

原创 构造函数执行多少次?

文章目录1. 构造函数执行多少次?1. 构造函数执行多少次?如果MyClass是一个类,执行"MyClass a[5],*b[6];,构造函数执行几次?"–>执行5次.执行构造函数,就是开始构造对象,为对象划分内存;同理如果给指针new 一个内存空间时,就会调用构造函数; MyClass a[5],*b[6]; //a[5]:生成一个数组,会分配5个对象; // *b[6]:生成一个指针数组,每一个元素可以指向一个数据类型为MyClass对

2021-09-05 21:37:19 2533

原创 条件变量与虚假唤醒

1. 条件变量假若现在存在两个线程A与线程B,线程B向线程A发送一个信号时,线程A才开始向下执行。std::condition_variable实际上是一个类,是一个和条件相关的一个类,等待一个条件达成,才能执行相关操作;这个类是需要和互斥量来配合工作的,用的时候我们要生成这个类的对象;...

2021-09-05 16:56:42 501

原创 Qt 使用默认应用程序打开文件

1. static bool openUrl(const QUrl &url);The openUrl() function is used to open files located at arbitrary URLs in external applications. For URLs that correspond to resources on the local filing system (where the URL scheme is “file”), a suitable appl

2021-09-04 17:11:31 1126

原创 std::call_once()与指针函数,向函数传递函数

文章目录1.std::call_once(): 指定函数只会被执行一次2.指针函数2.1 函数作形参1.std::call_once(): 指定函数只会被执行一次std::call_once()该函数的第二个参数是一个函数名 fun();std::call_once()的功能是保证函数 fun() 只会被调用一次(无论是单线程中多次被调用,或者在多线程中被多次调用);std::call_once()具备互斥量这种能力,而且在效率上,比互斥量的消耗的资源更少;std::call_once()需要与一

2021-09-04 15:05:09 364

原创 析构函数定位虚函数的作用

析构函数定位虚函数的作用当一个继承类经由一个基类的指针删除时,而该基类包含的是一个非虚析构函数,其结果是未定义的(实际执行时通常发生的是继承类的独有成分没有被销毁)。这个后果很严重,会造成**内存泄漏**。通过基类指针删继承类时,需要特别注意!!/** 当一个继承类经由一个基类的指针删除时,而该基类包含的是一个非虚析构函数,* 其结果是未定义的(实际执行时通常发生的是继承类的独有成分没有被销毁)。* 这个后果很严重,会造成内存泄漏。** 通过基类指针删继承类时,需要特别注意!!*/#.

2021-08-31 20:42:08 94

原创 Qt+OpenCV

Mat img=imread("C://Users//Pictures//1.jpg"); cvtColor(img,img,COLOR_BGR2RGB); //格式转换 //Mat存储格式是:BGR; //QImage存储格式是:RGB; QImage qimg=QImage(img.data,img.cols,...

2021-08-30 15:45:39 88

转载 世界坐标系

一、为什么需要世界坐标系?受限于相机FOV(视场角)以及拍摄时的位置与角度,拍摄的单张图像所含信息有限,当需要把多张图像的信息聚合在一起时,所面临的一个问题就是 不同图像在拍摄时处于各自的 **相机/物理/像素 **坐标系中,这些相对坐标系绝大部分情况下并不相同,要同时处理多张图像信息,便必须将多张图像的信息放置于同一个坐标空间内,使用相同的标准进行描述。即想将不同视点/视角拍摄的图像信息整合在一起就必须将所有的信息放在同一个坐标系下,这个坐标系应与各张图像的 相机/物体/像素 这些相对坐标系无关,在确

2021-08-26 16:32:01 3739

翻译 lambda表达式与正则表达式

文章目录1.lambda表达式:1.1向lambda表达式传递参数1.2 使用捕获列表1.3 捕获形式:1.4 修改捕获值 mutable:1.5 指定返回类型:1.6 lambda主要使用场合:1. lambda表达式基本使用2 lambda捕获块2.1 捕获的简单使用2.4 捕获的作用4. lambda表达式赋值很显然赋值不可以,而拷贝则可以,结合编译器自动生成构造函数规则,很明显,赋值函数被禁用了,而拷贝构造函数则没有被禁用,所以不能用一个lambda表达式给另外一个赋值,但可以进行初始化拷贝。2.正

2021-07-21 10:29:34 594

原创 aort()与exit()

文章目录1.exit2.abort()3.conclusionexit():abort():exit和abort函数,其功能都是终止程序的执行,将流程控制返回给操作系统。通常,exit用于正常终止程序的执行,abort用于异常终止程序的执行。1.exitexit用于正常终止程序的执行。exit(表达式);其中,表达式的值只能是整型数。通常把表达式的值作为终止程序执行的原因。执行该函数时,将无条件地终止程序的执行而不管该函数处于程序中的什么位置,并将控制返回给操作系统。通常表达式的取值为一个

2021-07-21 10:23:30 166

原创 Boost asio tcp通讯

使用Boost.asio 进行网络通信;tcp 通信://server.cpp#include <iostream>#include <boost/asio.hpp>using namespace std;using namespace boost::asio;int main(){ try { typedef ip::tcp::acceptor acceptor_type; typedef ip::tcp::endp

2021-07-21 10:10:01 302

翻译 智能指针.

智能指针全局对象在程序启动时分配,在程序结束时销毁;对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁.局部static对象在第一次使用前分配,在程序结束时销毁.1.普通指针初始化方法://方法一:string str,*strp;str="hello";strp=&str;//方法二:string str="hello";string *strp=&str; //注意这里直接是初始化了一个string对象&;2.动态内存划分//1.

2021-07-21 10:08:35 1018

原创 std::bind()与std::ref()

文章目录1.std::bind()1. 前言2. std::bind()的作用3.placeholders的作用4.std::bind()使用测试4.1 固定参数、调换顺序4.2 普通函数的参数中有引用类型4.3 普通函数嵌套包装5.包装类成员5.1 成员变量的包装6.总结2.std::ref和std::cref1.为什么需要std::ref和std::cref1.2运行结果:1.3结果分析3.std::ref()和&1.探究过程2.结论1.std::bind()1. 前言不知道大家在做项目写

2021-07-21 10:06:12 927

翻译 C 语言结构体

文章目录1.0 C语言结构体1.1 定义结构类型变量1.2 结构变量的初始化和引用2.结构体数组3. typedef 用于结构体3.1 typedef 用于数组3.2 typedef 用于结构体数组1.0 C语言结构体C 语言的结构体与Cpp的结构体定义不同:#include <stdio.h>struct Student{ char name[50]; int age;};int main(){ struct Student stu1={"zhangs

2021-07-21 10:02:59 56

转载 Qt Json 解析

文章目录JSON1. Json 数组1.1 Json 数组中的元素数据类型一致1.2 Json 数组中的元素数据类型不一致1.3 Json 数组中的数组嵌套使用1.4 Json 数组和对象嵌套使用2. Json 对象2.1 使用 Json 对象描述一个人的信息:3. 注意事项3.1 错误的写法3.2 正确的写法4 Qt json 操作:4.1. QJsonValue4.2. QJsonObject4.3. QJsonArray4.4. QJsonDocument作者: 苏丙榅链接: https://s

2021-07-15 11:01:59 889

原创 linux_cmake_生成库与链接库.md

0.最小cpp系统构成最小cpp系统构成,只需要一个CMakeLists.txt文件和一个main.cpp;//CMakeLists.txtcmake_minimum_required(VERSION 3.0)project(addlib)add_executable(test main.cpp)//所以最小cpp系统只需要三句cmake,如果需要添加自定义的头文件,和库文件,则需要将其包含在add_executable();此部分见##1.1.不使用用自定义库文件在Linux中需要使

2021-07-13 15:45:21 207

原创 c++面试题

文章目录1.1.c++域操作符:1.2.i++与++i的区别1.3.++i与i++那个效率高:1.4.有符号变量与无符号变量的值转换1.5.不使用任何中间变量,交换a与b的值1.6.C与C++有什么不同1.7.如何理解C++是面向对象化的,而C是面向过程化的1.8.C++中main函数执行完后还会执行其他语句吗2.1 宏定义,编译与链接2.2 用#define 实现宏并求最大值和最小值2.3 宏定义易错点2.4宏参数的连接2.5 用宏定义得到一个数组所含的元素个数2.6 找错-const2.7 #defin

2021-07-06 23:06:27 1029 1

原创 tuple c++

文章目录1.tuple 类型2.定义与初始化tuple3.访问tuple的成员->get():返回指定成员的引用4.tuple_element:返回指定成员的类型5.关系和相等运算6.使用tuple返回多个值;1.tuple 类型与pair类型相似,pair类型只有两个成员,但是tuple成员可以拥有任意数量的成员,可以将tuple看做成一个快速而随意的数据结构.实例说明tuple<T1,T2,T3,…,Tn> t;t是一个tuple,成员数为n,第i个成员的类

2021-06-23 23:03:47 167 3

原创 动态内存划分

文章目录1.存储分配2.静态存储分配内存2.1静态存储空间分配的优点:2.2静态存储空间分配的缺点:3.动态存储分配3.1 格式1:分配单个空间3.3 格式2:分配连续空间(数组)3.2 格式3:分配大小不知的存储空间4.动态空间释放1.存储分配存储分配就是为程序中用到的数据分配存储空间。2.静态存储分配内存通常变量数组都是先定义再使用,定义后编译器就可以根据其类型确定其所占存储空间的大小。2.1静态存储空间分配的优点:用户在编程时,只需定义变量或数组即可,等到变量或者数组的生命周期结束,编译器

2021-06-10 20:55:41 91

空空如也

空空如也

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

TA关注的人

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