自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ubuntu搜狗输入法安装指南和无法输入中文问题解决方案

问题和解决方案:没完全按照上述步骤,比如没有安装输入法依赖,会出现输入只显示英文不显示中文问题。解决方案就是:在终端执行:sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2sudo apt install libgsettings-qt1

2024-03-21 14:25:47 808 1

原创 重装VS2017后依然报错:找不到Windows SDK 版本10.0.17763.0

由于安装好VS2017后Windows Kits会默认安装在VS2017所在盘的根目录下,如果误删或者移动Windows Kits都会导致该报错。正确做法是将Windows Kits移动到目标位置后,修改相应的3个注册表中的4个寄存器值。

2023-03-07 01:24:06 3289 1

原创 计算机视觉算法

计算机视觉分为光度视觉、语义视觉和几何视觉,分别从传统的图像处理、立体视觉和三维重建、物体检测和识别发展而来,将来的发展趋势是深度学习方向。

2023-02-02 15:59:48 816

原创 C语言设计模式

C语言设计模式

2023-02-02 10:56:41 3613 1

原创 《视觉SLAM十四讲》第二版源码slambook2编译调试

slambook2-master/ch2编译正常,log如下:slambook2-master/ch2# mkdir build && cd build && cmake .. && make -j16CMake Deprecation Warning at CMakeLists.txt:2 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be remo...

2022-02-09 09:57:59 9451 3

原创 《视觉SLAM十四讲》第一版源码slambook编译调试

二、slambook编译调试slambook-master/ch2编译正常,log如下:slambook-master/ch2# mkdir build && cd build && cmake .. && make -j8-- The C compiler identification is GNU 9.4.0-- The CXX compiler identification is GNU 9.4.0-- Check for wo..

2022-02-09 09:53:25 5386 1

原创 SLAM开发环境搭建和配置

安装WSL子系统为了避免安装Windows+Linux双系统的麻烦和资源浪费,安装Windows版本的Linux系统即WSL子系统。0.进入Windows PowerShell界面正在上传…重新上传取消1.注销Ubuntu-18.04(因之前安装过的Ubuntu-18.04配置有些问题)wsl --unregister Ubuntu-18.04正在上传…重新上传取消2.安装Ubuntu-20.04(默认安装wsl1)wsl --install -d Ubuntu-20.0..

2022-01-30 01:06:05 6264

原创 1. 通用基础算法(1.7动态规划算法/1.8模拟算法/1.9其他算法)

动态规划算法 动态规划(Dynamic Programming)是求多阶段决策过程(Multistep Decision Process)最优化的一种数学方法,它将问题的整体按时间或空间的特征分成若干个前后衔接的时空阶段,把多阶段决策问题表示为前后有关的一系列单阶段决策问题,然后逐个求解,从而求出整个问题的最有决策序列。它强调了时间和空间的连续性。动态规划算法的核心思想就是避免子问题的重复计算,通过用空间换取时间的方法来提高算法效率。动态规划算法与分治算法和贪心算法类似,都是将问题归纳为更...

2021-12-27 17:54:37 556

原创 1. 通用基础算法(1.4分治算法/1.5贪心算法/1.6回溯算法)

4.分治算法分治算法的主要思想就是将原问题分解为多个相同结构的子问题,通过分别解决子问题的方式,最终解决原问题。分治算法主要解决可以进行线性模块划分的问题,主要步骤就是三个:分解原问题,解决子问题,合并子问题的解。下面以最大最小值问题和二分查找问题为例简单介绍。最大最小值问题:已知数列{a(n)},求解其最大值和最小值。以下是最大最小值问题的C语言程序。#include<stdio.h>#include<stdlib.h>#include<time.h&...

2021-12-21 17:44:28 229

转载 编程范式与语言

这篇文章是应“编程新思路”COP小组之邀,对编程范式做一个专题分享。主要是自己在读书、学习、工作上的一些心得总结,能力有限,希望能抛砖引玉,一同探讨。为什么要了解编程范式和语言到目前为止,世界上约有2500种程序设计语言,其中一部分的族谱关系如下。语言从世界观上思考和影响软件设计,不同范式看待设计的角度也迥然不同,比如命令范式语言以状态(变量)抽象现实世界,对象范式语言以对象抽象现实世界,函数范式语言以计算(函数)抽象现实时间。对现实问题的不同观察视角,从根本上影响软件开发者的思考方

2021-12-14 14:04:07 234

转载 设计模式之工厂模式(factory pattern)

工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊。1. 简单工厂模式该模式对对象创建管理方式最为简单,因为其仅仅简单的对不同类对象的创建进行了一层薄薄的封装。该模式通过向工厂传递类型来指定要创建的对象,其UML类图如下:下面我们使用手机生产来讲解该模式:Phone类:手机标准规范

2021-11-26 11:05:41 181

转载 c++怎样把二进制文件按字节读到vector<unsigned char>中?

c++怎样把二进制文件按字节读到vector<unsigned char>中?

2021-11-24 14:34:44 2225

原创 1. 通用基础算法(1.1枚举算法/1.2递推算法/1.3递归算法)

这部分主要介绍一下8种主要的通用基础算法思想:枚举算法、递推算法、递归算法、分治算法、贪心算法、回溯算法、动态规划算法、模拟算法,附带也会拓展介绍一些其他通用基础算法思想:数值转换算法、高精度求解算法、排序算法、排列组会算法等。

2021-11-17 13:55:44 4400

原创 基础算法导论

算法本质上说就是解决问题的方法和步骤。冯诺依曼的计算机架构体系解决了通用的数值计算和逻辑判断的问题,实际上可以认为它就是一个算法系统的具体展示:冯诺依曼计算机架构体系的5个组成部分“输入设备、输出设备、控制器、运算器、存储器”对应算法的五个特性“输入、输出、有限性、可行性、确定性”(似乎传统“金木水火土”的五行理论也可拓展升级了,这是题外话了)。

2021-11-17 13:43:39 272

原创 Windows环境含第三方库代码编译的三种方式

个人平时编译代码倾向于用轻量级和跨平台的方式,比如最常用的Cmake编译,还有VScode编译等。然而轻量级可能容易满足,跨平台因为各种原因往往受阻。最近正好有个合适的例子解决这个小问题,小小总结一下。方便起见,以高翔《视觉SLAM十四讲》第三章中Eigen库调用的eigenMatrix.cpp代码为例,源代码如下:#include <iostream>using namespace std;#include <ctime>// Eigen 部分#incl...

2021-07-15 17:12:03 1173

原创 i++和++i问题

i++和++i优先级问题(附带运算符优先级问题)参考:https://blog.csdn.net/mustard1020/article/details/79617865“i++和++i的真正区别详解”参考:https://blog.csdn.net/wenchangwenliu/article/details/104564555/“i++和++i的真正区别详解”这篇帖子在“int k=i+ ++i*i++;”之前分析是对的,之后的分析是错的。“int k=i+ ++i*i++;”之后正确分析如下:

2021-06-29 22:05:27 298

原创 Android NDK基础和NDK独立编译SO环境搭建

目录NDK编译SO环境搭建... 1修订... 31. Android NDK基础... 41.1 简介... 41.2 结构... 41.3 目录详解... 61.4 工具详解... 71.4.1ndk-build.cmd. 71.4.2 Android.mk构建规则脚本... 81.4.3 Application.mk构建配置脚本... 181.5 Android NDK其他... 231.5.1 Android版本号... 231.5.2 精简内容.

2021-03-27 16:37:37 529

转载 camera理论基础和工作原理

camera理论基础和工作原理写在前面的话,本文是因为工作中需要编写摄像头程序,因为之前没有做过这类产品,所以网上搜索的资料,先整理如下,主要参考文章如下,如果有侵权,请联系我;另外,转载请注明出处。本文不一定全部正确,如果发现错误请指正。如果有新的理解,会继续整理。http://blog.csdn.net/xubin341719/article/details/7723725http://blog.csdn.net/pengwentao/article/details/7180115htt

2021-03-03 11:10:25 1756

原创 视觉 SLAM 十四讲-基础数学篇

1、第1讲 前言SLAM 是 Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。本书介绍以视觉传感器为主体的视觉 SLAM 技 术,分为两部分:第一部分为数学基础篇,第二部分为 SLAM 技术篇。本书采用C++ 作为编码语言,所有源代码均托管到 github 上:https://github.com/gaoxiang12/slambook2、第1讲 初识SLAM(1)引子:小萝卜的例子如下图所示我们希望机器人小萝卜具有..

2020-12-04 01:30:03 3045

原创 Python计算机视觉-第5章

本章讲解如何处理多个视图,以及如何利用多个视图的几何关系来恢复照相机位置 信息和三维结构。通过在不同视点拍摄的图像,我们可以利用特征匹配来计算出三 维场景点以及照相机位置。本章会介绍一些基本的方法,展示一个三维重建的完整 例子;本章最后将介绍如何由立体图像进行致密深度重建。1、外极几何同一个图像点经过不同的投影矩阵产生的不同投影点必须满足:St为外极约束条件。矩阵 F 为基础矩阵。基础矩阵可以由两照相机的参数矩阵(相对旋转 R 和平移 t)表示。基础矩阵跟本质矩阵的区别是推导采用的坐标系不同

2020-12-01 16:51:43 1857

原创 Python计算机视觉-第4章

本章中,我们将尝试对照相机进行建模,并有效地使用这些模型。在之前的章节里, 我们已经讲述了图像到图像之间的映射和变换。为了处理三维图像和平面图像之间 的映射,我们需要在映射中加入部分照相机产生图像过程的投影特性。本章中我们 将会讲述如何确定照相机的参数,以及在具体应用中,如增强现实,如何使用图像 间的投影变换。下一章中,我们将使用照相机模型处理其他一些应用,比如多视图 及其映射。1、针孔相机模型(1)照相机矩阵针孔照相机模型(有时称为射影照相机模型)是计算机视觉中广泛使用的照相机模 型。如下图所

2020-12-01 15:17:12 1577

原创 Python计算机视觉-第3章

本章讲解图像之间的变换,以及一些计算变换的实用方法。这些变换可以用于图像 扭曲变形和图像配准。最后,我们将会介绍一个自动创建全景图像的例子。1、单应性变换(1)直接线性变换算法(2)仿射变换2、图像扭曲(1)图像中的图像(2)分段仿射扭曲(3)图像配准3、创建全景图(1)RANSAC(2)稳健的单应性矩阵估计(3)拼接图像...

2020-12-01 11:08:27 988

原创 Python计算机视觉-第2章

本章旨在寻找图像间的对应点和对应区域。本章将介绍用于图像匹配的两种局部描 述子算法。本书的很多内容中都会用到这些局部特征,它们在很多应用中都有重要 作用,比如创建全景图、增强现实技术以及计算图像的三维重建。1、Harris角点检测器在图像间寻找对应点2、SIFT(尺度不变特征变换)(1)兴趣点(2)描述子(3)检测兴趣点(4)匹配描述子3、匹配地理标记图像...

2020-12-01 01:58:13 669

原创 Python计算机视觉-第1章

本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Python 工具包,并介绍用于读取图像、图像转换和缩放、计算导数、画图和保存结果等的 基本工具。这些工具的使用将贯穿本书的剩余章节。1、PILPIL(Python Imaging Library,图像处理类库)提供了通用的图像处理功能,以及大 量有用的基本图像操作,比如图像缩放、裁剪、旋转、颜色转换等。PIL 是免费的, 可以从 http://www.pythonware.com/products/pil/ 下载。(1)转换图

2020-11-26 04:15:58 545

原创 Python计算机视觉-第6章

本章将介绍几种聚类方法,并展示如何利用它们对图像进行聚类,从而寻找相似的 图像组。聚类可以用于识别、划分图像数据集,组织与导航。此外,我们还会对聚 类后的图像进行相似性可视化。1、K-means聚类K-means 是一种将输入数据划分成 k 个簇的简单的聚类算法。K-means 反复提炼初始评估的类中心,步骤如下:(1) 以随机或猜测的方式初始化类中心 ui,i=1...k;(2) 将每个数据点归并到离它距离最近的类中心所属的类 ci;(3) 对所有属于该类的数据点求平均,将平均值作为新的类

2020-11-15 00:31:03 473

原创 Python计算机视觉-第9章

图像分割是将一幅图像分割成有意义区域的过程。区域可以是图像的前景与背景或 图像中一些单独的对象。这些区域可以利用一些诸如颜色、边界或近邻相似性等特 征进行构建。本章中,我们将看到一些不同的分割技术。1、图割(1)从图像创建图割(2)用户交互式分割2、利用聚类进行分割3、变分法当优化的对象是函数时,该问题称为变分问题,解决这类问题的算法称为变分法。 我们看一个简单而有效的变分模型。Chan-Vese 分割模型由分片常数图像 U=χ1c1+χ2c2,我们可以将上式重写为:

2020-11-14 00:06:49 676

转载 拉普拉斯矩阵(Laplace Matrix)与瑞利熵(Rayleigh quotient

前言前面分析了非负矩阵分解(NMF)的应用,总觉得NMF与谱聚类(Spectral clustering)的思想很相似,打算分析对比一下。谱聚类更像是基于图(Graph)的思想,其中涉及到一个重要概念就是拉普拉斯矩阵(Laplace matrix),想着先梳理一下这个矩阵:  1)拉普拉斯矩阵基本定义  2)拉普拉斯矩阵意义及性质  3)瑞利熵(Rayleigh quotient)内容为自己的学习记录,很多地方都借鉴了别人,最后一并给出链接。一、拉普拉斯矩阵基本定义对于.

2020-11-13 17:21:09 3145

转载 OpenCV总结

目录1、简介 1.1、什么是open CV 1.2、优点 1.3、如何获得open CV 2、我的第一个open CV程序 2.1、工具及版本 2.2、opencv安装与环境配置 2.3、将open CV与Visual Studio 2017关联 2.4、开始第一个项目 3、图像读取、显示与保存 3.1、头文件与命名空间 3.2、imread()函数 3.3、namedWindow()函数 3.4、imshow()函数 3.5、imwrite()函

2020-11-11 11:14:08 1088

原创 Python计算机视觉-第10章

本章概述如何通过 Python 接口使用流行的计算机视觉库 OpenCV。OpenCV 是一个 C++ 库,用于(实时)处理计算视觉问题。实时处理计算机视觉的 C++ 库,最初由 英特尔公司开发,现由 Willow Garage 维护。OpenCV 是在 BSD 许可下发布的开源 库,这意味着它对于学术研究和商业应用是免费的。OpenCV 2.0 版本对于 Python 的支 持已经得到了极大的改善。下面,我们会讲解一些基本的例子并深入了解视频与跟踪。1、图像的读写# -*- co...

2020-11-11 05:25:19 875

原创 pip,brew,apt-get和one-get

全栈工程师或者软件行业专家经常可能要跨平台开发代码,那就很有必要找到找到一个可以通用或者类似功能的软件管理工具。 对于linux平台,当然是apt-get了;对于Mac平台,自然是brew了;那么Windows平台用什么呢?先买个关子。因在win10平台上进行Python开发,想找款跟linux平台apt-get一样的软件管理工具,于是找到了pip,用的超级爽。于是疑问pip、apt-get和brew有什么区别?以下帖子简单回答了这个疑问。https://www.j...

2020-07-28 16:49:07 220

原创 架构、项目、产品三位一体

写代码写的久了考虑问题就不单纯从代码本身去考虑了,今天梳理一些语言基础时突然想到这个话题,展开写点自己的经验和想法。 初学或者刚入行写代码一般目标都在研究某个代码架构,比如用Java实现商业BI用Spring MVC架构,实现用C语言实现机器视觉检测用OpenCV或者Halcon架构等等。总的来说,这个层面其实就是“架构=语言+算法”。针对不同领域使用不同的语言,针对不同的问题使用不同的算法,而且大多数情况下可能已经有成熟的解决方案和代码套路,所谓工作就是熟练使用这些套路实现罢...

2020-05-26 00:09:39 304

空空如也

空空如也

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

TA关注的人

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