- 博客(63)
- 收藏
- 关注
原创 从搞崩系统中学到的东西
双系统环境:windows10+ubuntu20.04由于操作不当,造成系统无法启动,在解决问题的过程中,发现有很多不熟的地方,记录(搬运)一下最终解决方法是装了PE系统,修复引导项概念解释PE系统PE系统是一种装系统的系统,也就是预装系统的系统,它是一种系统预装环境和工具。现在主要有window2003pe、win7pe、win8pe、win10pe。分别适用于不同版本的操作系统。PE系统,放在u或者光盘里的一种可以随身携带的系统, 它的优点就在于方便性,它是用来给电脑装系统的一种系统。
2021-10-06 17:32:27
748
原创 Ubuntu花屏、出现黑色条纹原因分析
Ubuntu下出现黑色花纹系统ubuntu20.04 + windows10双系统1. 出现问题windows下暂无出现花屏问题。ubuntu开机后屏幕如下所示,通过重启会恢复正常,经过一段时间后又会出现花屏2. 可能原因硬件问题显示屏有问题可以通过外接显示屏来判断,如果外接的显示屏可以正常显示,那么可能是笔记本的显示屏出现问题,如果外接显示屏仍然是花屏,那么可以排除笔记本显示屏问题;可以通过打开一张图片,如果图片在花屏位置处不能正常显示,而将图片移动到可以正常显示的区域,图片正常
2021-05-21 15:00:02
2349
原创 一键push到Github的脚本
上一篇文章主要内容是通过git工具可以将Typora笔记上传至Github/码云端但是在每次提交的过程中,我们都需要重复的运行下面的一串代码,非常麻烦,还有可能记不住。git add . #将文件添加到暂存区git commit -m "说明" #将文件从暂存区提交至本地版本库git push -u origin master #将文件从本地版本库托管至远程版本库(Github/码云端)所以我们需要将其这些命令封装成一个脚本,每次运行脚本即可这里我将脚本取名为push.sh这里我们创建一个全
2021-03-08 09:07:20
556
原创 Ubuntu中使用Typora+Git+Github/码云打造云端笔记
文章目录TyporaGitGithub/码云具体操作Typora简介:Typora是一款开源的支持markdown的笔记软件,提供及时渲染的笔记环境,其轻巧简洁的笔记风格让人爱不释手。安装:下载网址(拉到网页底部下载Linux版本)使用:Markdown的语法较容易上手,可以参考菜鸟教程或CSDN的新手教程。免费的IT学习网站—菜鸟教程、设置:安装成功后,我们可以进行一些偏好设置(文件->偏好设置)首先为了以后将笔记上传至github做准备,需要对图像选项做一些改动。在图像一栏中,如下
2021-03-07 14:58:29
839
原创 Ubuntu下无脑跑通yolov5目标检测与跟踪(Pycharm+Pytorch1.7.1+Cuda10.1)
此文章记录如何在ubuntu下部署yolov5网络,并训练自己的数据集环境:ubuntu16.04+Pycharm+Pytorch1.7.1+Cuda10.1具体如何在ubuntu下配置深度学习环境,可以参照此篇博客一、配置环境并运行例程下载yolov5下载地址:github链接下载方式:进入github页面,点击右上角的code,复制图中网址。在目标文件夹中打开终端(进入目标文件夹中右键点击弹出框中的在终端打开),运行以下命令,将yolov5下载至该目录中git clone https:.
2021-01-21 12:11:33
10370
10
原创 实现谷歌单元测试框架gtest(C++测试框架)(上)
文章目录1.单元测试2.单元测试框架3.gtest4.安装gtest1.单元测试负责对最小的软件设计单元(模块)进行验证,单元就是人为规定的最小的被测功能模块,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。2.单元测试框架提供用例组织与执行:提供用例组织与执行:测试用例只有几条时,可以不考虑用例组织,但是用例达到成百上千时,大量的测试用例堆砌在一起,就产生了扩展性与维护性等问题。提供丰富的断言方法:不论是功能测试,还是单元测试,在用例执行完之后都需要将
2020-10-18 18:35:23
905
原创 工程文件规范(Linux版;C++语言)
#include <***.h> //include的作用实际上是将.h文件中的内容拷贝一份#include "***.h"是在当前目录中进行查找#include <***.h>是在系统包含的路径中进行查找如果想把自己的.h文件也可以使用<>引入,只需要将自己的头文件所在的目录添加到系统查找的目录中去gcc -I./将当前目录添加到系统头文件的查找路径当中说明函数的声明和定义说明整个文件的编译处理过程说明项目文件的规范流程在一般情况下我们编写代码都会写
2020-10-17 23:08:37
346
原创 Linux系统中的小技巧(持续更新)
1.命令别名设置功能:aliasalias lm='ls -al' #这样就可以用lm来完成ls -al一样的功能unalias lm #使用unlias可以解除命令别名2.查找曾经执行的命令history#可以查找前一次登录以前所有的操作history -n #显示最近的n条命令history -c #清除所有的历史记录命令!number #执行第n条命令!! #执行上一条命令!command #运行最近命令开头的命令3.命令行中的快捷操作cd /home/code/c\#’
2020-10-17 11:04:03
177
原创 Ubuntu16.04下深度学习环境的配置(GPU版)(Anaconda3+Pycharm+Pytorch)
这里我使用的分别是Ubuntu16.04、pytorch1.6.0、anaconda3、pycharm,其中在pytorch中选择的cuda版本为9.2为什么深度学习很多使用linux虚拟机和双系统的区别关于anaconda的介绍为什么深度学习和神经网络需要GPUcuda和cudnn在安装之前,有必要解释一下各部分的意义操作系统:linux和windows都属于操作系统。我使用的系统是Ubuntu16.04版本,它是linux家族中使用较多的一种。我这里安装的是双系统,当然你也可以使用虚拟机
2020-10-09 10:56:31
2806
6
原创 室内定位技术
一、课题研究的背景和意义基于位置的服务作为一种生活方式已逐渐渗透到人类生活的方方面面。目前在室外环境中,基于全球定位系统(GPS)或 蜂窝移动网络,定位导航技术已经比较成熟。但由于室内环境存在较多的遮挡和障碍,会使卫星或蜂窝网络的信号脆弱,从而使室内定位无法通过GPS或蜂窝移动网络技术实现。由于人类平均约有70%~90%的时间在室内度过,我们更期望能实现在室内环境下(如商场门店、病房、监狱、办公...
2020-09-15 09:36:42
3434
1
原创 ROS6---参数的使用与编程方法
1、参数模型2、创建功能包cd ~/catkin_ws/srccatkin_create_pkg learning_parameter roscpp rospy std_srvs3、参数命令行使用YAML参数文件background_b: 255background_g: 86background_r: 69rosdistro: 'kinetic'roslaunch: ...
2020-09-15 09:35:27
306
原创 ROS5---服务模式(客户端Client、服务端Server的编程实现)
1、创建功能包cd ~/catkin_ws/srccatkin_create_pkg learning_service roscpp rospy std_msgs geometry_msgs turtlesim2、如何实现一个客户端初始化ROS节点创建一个Client实例发布服务请求数据等待Server处理之后的应答结果3、配置客户端代码编译规则设置需要编译的代码和生成...
2020-09-15 09:34:43
498
原创 ROS4---话题模型(Publisher、Subscriber的编程实现和话题消息的定义与使用)
1、话题模型通过一个程序实现发布者,发布海龟的速度指令,让海龟能够动起来。2、创建功能包cd ~/catkin_ws/srccatkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim3、创建发布者代码(C++)初始化ROS节点向ROS Master注册节点信息,包括发布的话题名和话...
2020-09-15 09:34:30
572
1
原创 ROS3---创建工作空间与功能包
1、工作空间(workspace)是一个存放工程开发相关文件的文件夹src:代码空间(Source Space)build:编译空间(Build Space)devel:开发空间(Development Space)install:安装空间(Install Space)2、创建工作空间创建工作空间mkdir -p ~/catkin_ws/srccd ~/catkin_ws/...
2020-09-15 09:33:41
187
原创 ROS2---命令行工具的使用
1、还以小海龟仿真器为例(以下命令分3个终端打开)roscore#启动ROS Masterrosrun turtlesim turtlesim_node#启动小海龟仿真器节点,这里turtlesim为一个功能包,turtlesim_node为其中的1个节点rosrun turtlesim turtle_teleop_key#启动海龟控制节点,功能包turtlesim中的另一个节点,该节点功...
2020-09-15 09:33:11
632
1
原创 ROS1---核心概念
1、节点与节点管理器节点(Node)执行单元执行具体事物的进程、独立运行的可执行文件不同节点可使用不同的编程语言,可分布式运行在不同的主机节点在系统中的名称必须是唯一的节点管理器(ROS Master)控制中心为节点提供命名和注册服务跟踪和记录话题/服务通信,辅助节点相互查找、建立连接提供参数服务器,节点使用此服务器存储和检索运行时的参数2、话题通信话题(...
2020-09-15 09:32:48
866
原创 一次搞定OpenCV源码及扩展模块的编译与环境配置
本篇文章用来记录花一天时间将扩展模块加入opencv,为了避免大家迷路,特写此博客帮助大家顺利搞定opencv扩展模块版本:VS2017、CMake3.12.3、OpenCV3.4.7安装OpenCV时的环境配置以及扩展模块的编译对于多数新手来说都是令人头疼的问题,希望通过这篇文章可以帮助新手们一次搞定OpenCV的安装与扩展模块编译问题。第一步:安装软件1、安装VS2017,在微软官网可...
2020-09-15 09:30:48
1328
原创 Python数据可视化---安装matplotlib工具
一、生成数据1.安装matplotlib首先需要安装matplotlib,它是一个数学绘图库,我们可以使用它来制作简单的图表,如折线图和散点图。下面演示在Windows系统下安装matplotlib,使用的python3.8.0版本如果使用的IDE是anaconda的话,可以在Anaconda Prompt下执行conda命令安装matplotlib包。执行命令是:conda install matplotlib 并且可以在cmd中查看matplotlib的安装位置pip show ma
2020-09-15 09:26:27
710
原创 光学动作捕捉相机
迫于导师要求,不得不来更光学动作捕捉相机内容,本篇文章我将介绍我了解到的几家公司的动作捕捉相机产品1.OptiTrack实现方案 被定位物体上布满标记点,利用红外发光装置发射出红外光线照射在标记点上,该种标记点表面为反光材料,增强其对照明近红外光的反射能力,从而达到图像中标记球与周围环境明显区分的目的。 近红外摄像机捕捉到目标物上标记点所反射的红外光后,将多台摄像机从不同角度采集到的...
2020-08-04 10:11:53
1686
原创 OpenCV3---亚像素级别角点检测
提高检测精准度角点可能会不位于某一个确定的像素点,位于某两个像素之间,也就是说角点的位置以浮点数的形式表示,这样得到的角点检测精度更高,实现这个目的的角点检测方法叫做亚像素角点检测。理论与实际有的时候是不一致的,实际情况下角点几乎不会是一个真正的准确像素点。(100,5)实际上(100.234,5.789)检测方法插值方法基于图像矩计算曲线拟合方法-(高斯曲面、多项式、椭圆曲面-)...
2020-07-27 21:08:07
285
原创 OpenCV2---Shi-Tomasi角点检测
角点检测理论和Harris角点检测的理论几乎完全一致,唯一不同的是在使用矩阵特征值λ1\lambda_1λ1λ2\lambda_2λ2计算角度响应的时候的公式不同。Shi-Tomasi角点响应公式:R=min(λ1,λ2)R=min(\lambda_1,\lambda_2)R=min(λ1,λ2)参数说明gridFeaturesTotrack(InputArray image,OutputArray corners,//检测角点的坐标int maxCorners,//表示返回角点的数
2020-07-23 11:13:40
146
原创 OpenCV1---Harris角点检测
1、Harris角点检测理论首先需要明确什么是角点角点的特点平坦区域:窗口移动在所有方向没有明显的梯度变化边缘区域:窗口移动在某个方向有明显梯度变化角点区域:窗口移动在各个方向梯度值都有明显变化公式推导窗口平移[U,V][U, V][U,V]方向产生灰度变化E(u,v)E(u, v)E(u,v),可以将公式写为E(u,v)=∑x,y[I(x+u,y+v)]−I(x,y)]2E(u,v)=\sum_{x,y}{[I(x+u,y+v)]-I(x,y)]}^2E(u,v)=∑x,y[I(x+
2020-07-22 21:41:41
132
原创 影响双目视觉系统定位精度的因素分析
在本篇文章中,我将分析和定位精度相关的几个参数对定位精度的影响双目视觉系统已经被广泛应用在很多领域,但其定位精度仍难以满足工业要求。为了进一步提高它的精度,可以限制一些参数,使参数在这些范围内可以达到最佳精度。现在需要做的便是找到这些参数,并分析每一个参数和可能的误差之间的系。本篇文章将分析影响精度的7个参数,并将其分为两大类:第一类是系统结构参数(包括基线距离B,摄像机焦距,光轴和基线间的角...
2020-07-19 14:55:09
12286
10
原创 双目立体标定源代码(免费拿走不谢)
相机标定源码如果遇到任何问题,欢迎评论留言#include <opencv2/core/core.hpp>#include <opencv2/calib3d/calib3d.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#in...
2020-07-19 14:54:56
1437
7
原创 双目视觉(一)-相机标定及各坐标系间转换关系
本篇文章用来记录近期学习双目视觉定位的收获,后续我将随着不断深入学习对文章进行补充 视觉是人类感知外界环境信息的重要途径,其中人类约有80%的环境信息是通过双眼获取的。双目视觉系统是典型的类人视觉模型,可以很好的解决物体的识别与定位问题。 双目视觉定位的实现主要分为以下几个内容:1. 摄像机标定目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机...
2020-07-19 14:54:34
6781
原创 OpenCV32---基于距离变换与分水岭的图像分割
三十二、基于距离变换与分水岭的图像分割1、什么是图像分割(Image Segmentation)图像分割是图像处理最重要的处理手段之一图像分割的目标是将图像中像素根据一定的规则分为若干(N)个cluster集合,每个集合包含一类像素根据算法分为监督学习和无监督学习方法,图像分割的算法多数都是无监督学习方法—Kmeans2、距离变换与分水岭介绍距离变换常见算法有两种不断膨胀/...
2020-04-08 18:23:43
780
原创 工业相机镜头
1、镜头基本参数及相关知识概述在机器视觉系统中,镜头的主要作用就是将目标成像在图像传感器的光敏面上。镜头的质量直接影响到机器视觉系统的整体性能,合理选择镜头和安装镜头,是机器视觉系统设计的重要环节。影响图像质量的关键因素图像质量参数影响图像质量的因素分辨率镜头、相机、显示设备对比度镜头、光源、相机景深镜头失真(畸变)镜头投影误差镜头...
2020-04-04 09:46:53
521
原创 工业相机
本文总结自大恒图像培训课程1、概述工业相机工业相机是机器视觉系统的重要组成部分,其功能是通过CCD或CMOS成像传感器将镜头接收到的光学信号转换为对应的模拟信号或数字信号,并将这些信息由相机与计算机的接口传送到计算机主机。典型结构2、工业相机分类模拟相机和数字相机工业相机按输出图像信号格式划分为模拟相机与数字相机,目前工业上多采用数字相机。面阵相机和线阵相机按传感器像素排...
2020-04-03 18:28:25
901
原创 OpenCV31---点多边形测试
三十一、点多边形测试1、概念介绍测试一个点是否在给定的多边形内部、边缘或者外部2、API介绍cv::pointPolygonTestpointPolygonTest(InputArray contours,//输入的轮廓Point2f pt,//测试点bool meatureDist//是否返回距离值,如果是false,1表示在内面,0表示在边界上,-1表示在外部,如果是true返回...
2020-04-02 21:50:52
241
原创 OpenCV29---轮廓周围绘制矩形框和圆形框
三十、轮廓周围绘制矩形框和圆形框1、减少多边形轮廓点数APIapproxPolyDP作用是把一个很多点的多边形变成一个点数适中的多边形,在这个多边形里面找它的最小连接矩形和最小的圆。approxPolyDP(InputArray curve,//输入一个多边形(点)OutputArray approxCurve, //输出一个处理后的多边形(点)double epsilon,//表示两...
2020-04-02 15:50:28
350
原创 OpenCV28---凸包
二十八、凸包(Convex Hull)1、概念介绍什么是凸包:在一个多边形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。正式定义:包含点集合S中所有点的最小凸多边形称为凸包。检测算法Graham扫描法首先选择Y方向最低的点作为起始点p0从p0开始极坐标扫描,依次添加p1…pn(排序顺序是根据极坐标的角度大小,逆时针方向)对每个点pi来说,如果添加pi点到凸包中导致一个...
2020-04-02 12:10:16
213
原创 OpenCV27---轮廓发现
二十七、轮廓发现1、轮廓发现(find contour)轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓发现结果。2、API介绍findContours发现轮廓二值图像上发现轮廓使用APIfindContours(InputOutputArray src,//输入图像,非0的像素被看成1,0的像素保持不变,8bitsOutputArr...
2020-04-01 23:04:53
122
原创 OpenCV26---模板匹配
二十六、模板匹配1、模板匹配介绍(Template Match)模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。所以模板匹配首先需要一个模板图像T(给定的子图像)。另外需要一个待检测的图像。工作方法:在待检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。2、匹配算法介绍opencv中提供了6种常见的匹配算法如下:计算...
2020-04-01 23:04:19
155
原创 OpenCV25---直方图反向投影
二十五、直方图反向投影1、反向投影(Back Projection)反向投影是反映直方图在目标图像中的分布情况简单点说就是用直方图模型去目标图像中寻找是存在否相似的对象。通常用HSV色彩空间的HS两个通道直方图模型。具体操作是先得到一张图像的直方图信息,然后遍历原图像的每一个像素,如果这个像素值在直方图的某个bin下,就用这个bin出现的频次去代替这个像素值。这样划分了多少个bin,新生...
2020-03-28 12:11:04
245
原创 单目标定(免费拿走不谢)
单目标定源代码如果遇到任何问题,或发现错误,欢迎评论留言指正。#include <opencv2/core/core.hpp>#include <opencv2/calib3d/calib3d.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.h...
2020-03-28 00:34:25
1091
1
原创 OpenCV24---直方图比较
二十四、直方图比较利用两张图片的直方图判断两张图片的相似性,也可以判断两个图片是否为同一图片。1、直方图比较方法对输入的两张图象计算得到直方图H1与H2,归一化到相同的尺度空间然后可以通过计算H1和H2之间的距离得到两个直方图的相似程度进而比较图像本身的相似程度。opencv提供的比较方法有4种:Correlation相关性比较 HISTCMP_CORREL如果两个数组H1、H2一样的...
2020-03-28 00:30:18
326
原创 OpenCV23---直方图计算
二十三、直方图计算1、直方图概念对于图像像素值、图像梯度、每个像素的角度等一切图像的属性值,都可以建立直方图,不过基于图像像素灰度直方图是最常见的。直方图常见的几个属性:dims表示维度,对灰度图像来说只有一个通道值dims=1bins表示在维度中子区域大小划分,bins=256代表划分为256个级别range表示值的范围,灰度范围为0~255之间2、API学习split将三...
2020-03-27 18:26:06
174
原创 OpenCV22---直方图均衡化
二十二、直方图均衡化1、什么是直方图(Histogram)统计每一个像素值出现的次数,根据每一个像素值的频次生成直方图。纵坐标是出现的频次,横坐标是像素值。所有的频次加起来就是图像所含有的像素数量。符合这种特征的数据都可以做直方图。即数据的范围有限,统计数据在这个范围内各个位置出现的频次就可以做直方图。图像直方图,是指对整个图像在灰度范围内的像素值(0~255)统计出现频次次数,据此生成...
2020-03-27 15:47:00
419
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人