自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenCV图像处理——图像平滑

1图像噪声由于图像采集、处理、传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理。常见的图像噪声有高斯噪声、椒盐噪声等。1.1 椒盐噪声椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。1.2 高斯噪声高斯噪声是指噪声密度函数

2022-02-07 18:06:34 676

原创 图像处理入门——形态学操作

形态学操作1.连通性在图像中,最小的单位是像素,每个像素周围有8个邻接像素,常见的邻接关系有3种:4邻接、8邻接和D邻接。分别如下图所示:4邻接:像素p(x,y)的4邻域是:(x+1,y);(x-1,y);(x,y+1);(x,y-1)D邻接:像素p(x,y)的D邻域是:对角上的点 (x+1,y+1);(x+1,y-1);(x-1,y+1);(x-1,y-1),8邻接:像素p(x,y)的8邻域是: 4邻域的点 + D邻域的点2.形态学操作形态学转换是基于图像形状的一些简单操作。它通常在二进

2022-01-24 22:43:48 2635

原创 图像处理入门——几何变换

OpenCV几何变换1. 图像缩放:对图像进行放大或缩小cv2.resize(src,dsize,fx=0,fy=0,interpolation=cv2.INTER_LINEAR)参数:src : 输入图像dsize: 绝对尺寸,直接指定调整后图像的大小fx,fy: 相对尺寸,将dsize设置为None,然后将fx和fy设置为比例因子即可interpolation:插值方法示例import cv2 as cv# 1. 读取图片img1 = cv.imread("./imag

2022-01-24 12:06:08 384

原创 图像处理入门——算数操作

OpenCV算数操作1.图像的加法可以使用OpenCV的cv.add()函数把两幅图像相加,或者可以简单地通过numpy操作添加两个图像,如res = img1 + img2。两个图像应该具有相同的大小和类型,或者第二个图像可以是标量值。注意:OpenCV加法和Numpy加法之间存在差异。OpenCV的加法是饱和操作,而Numpy添加是模运算。参考以下代码:>>> x = np.uint8([250])>>> y = np.uint8([10])>&g

2022-01-24 11:49:01 199

原创 图像处理入门——OpenCV基本操作

图像的基础操作基本目标:掌握图像的读取和保存方法能够使用OpenCV在图像上绘制几何图形能够访问图像的像素能够获取图像的属性,并进行通道的分离和合并能够实现颜色空间的变换1.图像的IO操作这里我们会给大家介绍如何读取图像,如何显示图像和如何保存图像。1.1读取图像APIcv.imread()参数:要读取的图像读取方式的标志cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。cv.IMREAD*GRAYSCALE:以灰度模式加载图像

2022-01-22 09:39:43 404

原创 图像处理入门——OpenCV简介

OpenCV简介1.什么是OpenCVOpenCV是一款由Intel公司俄罗斯团队发起并参与和维护的一个计算机视觉处理开源软件库,支持与计算机视觉和机器学习相关的众多算法,并且正在日益扩展。OpenCV的优势:1)编程语言OpenCV基于C++实现,同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Python API,结合了OpenCV C++ API和Python语言的最佳特性。2)跨平台可以在不同的系统平台上使用,包括Windows,

2022-01-22 09:29:45 1142

原创 C语言从入门到实战——文件(2)

文件操作1.文件的顺序读写1) 按照字符读写文件fgetc、fputcA.写文件#include <stdio.h>int fputc(int ch, FILE * stream);功能:将ch转换为unsigned char后写入stream指定的文件中参数: ch:需要写入文件的字符 stream:文件指针返回值: 成功:成功写入文件的字符 失败:返回-1char buf[] = "this is a test for fputc";int i = 0;int

2022-01-15 09:20:32 148

原创 C语言从入门到实战——文件(1)

文件操作1.文件概述1) 磁盘文件和设备文件磁盘文件指一组相关数据的有序集合,通常存储在外部介质(如磁盘)上,使用时才调入内存。设备文件在操作系统中把每一个与主机相连的输入、输出设备看作是一个文件,把它们的输入、输出等同于对磁盘文件的读和写。2) 磁盘文件的分类计算机的存储在物理上是二进制的,所以物理上所有的磁盘文件本质上都是一样的:以字节为单位进行顺序存储。从用户或者操作系统使用的角度(逻辑上)把文件分为:文本文件:基于字符编码的文件基于字符编码,常见编码有ASCII、UNICOD

2022-01-15 09:11:51 236

原创 C语言从入门到实战——结构体

结构体1.什么是结构体?数组:描述一组具有相同类型数据的有序集合,用于处理大量相同类型的数据运算。有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性。显然单独定义以上变量比较繁琐,数据不便于管理。C语言中给出了另一种构造数据类型——结构体。2.结构体变量的定义和初始化定义结构体变量的方式:先声明结构体类型再定义变量名在声明类型的同时定义变量直接定义结构体类型变量(无类型名)结构体类型和结构体变量关系:结构体类型:指定了一个结构体类型,它

2022-01-13 14:09:43 154

原创 C语言从入门到实战——指针(3)

指针与字符串1.字符指针#include <stdio.h>int main(){ char str[] = "hello world"; char *p = str; *p = 'm'; p++; *p = 'i'; printf("%s\n", str); p = "mike jiang"; printf("%s\n", p); char *q = "test"; printf("%s\n", q); return 0;}2.字符指针做函数参数#

2022-01-12 09:29:26 218

原创 C语言从入门到实战——指针(2)

指针与数组1.数组名数组名字是数组的首元素地址,但它是一个常量:int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };printf("a = %p\n", a);printf("&a[0] = %p\n", &a[0]);//a = 10; //err, 数组名只是常量,不能修改2.指针操作数组元素#include <stdio.h>int main(){ int a[] = { 1, 2, 3, 4, 5, 6, 7, 8

2022-01-12 09:24:48 230

原创 C语言从入门到实战——指针(1)

指针1.概述1)内存内存含义:存储器:计算机的组成中,用来存储程序和数据,辅助CPU进行运算处理的重要部分。内存:内部存贮器,暂存程序/数据——掉电丢失 SRAM、DRAM、DDR、DDR2、DDR3。外存:外部存储器,长时间保存程序/数据—掉电不丢ROM、ERRROM、FLASH(NAND、NOR)、硬盘、光盘。内存是沟通CPU与硬盘的桥梁:暂存放CPU中的运算数据暂存与硬盘等外部存储器交换的数据2)物理存储器和存储地址空间有关内存的两个概念:物理存储器和存储地址空间。**物理存储

2022-01-12 09:19:53 215

原创 C语言从入门到实战——函数

函数1.函数分类C 程序是由函数组成的,我们写的代码都是由主函数 main()开始执行的。函数是 C 程序的基本模块,是用于完成特定任务的程序代码单元。从函数定义的角度看,函数可分为系统函数和用户定义函数两种:系统函数,即库函数:这是由编译系统提供的,用户不必自己定义这些函数,可以直接使用它们,如我们常用的打印函数printf()。用户定义函数:用以解决用户的专门需要。2. 函数的作用函数的使用可以省去重复代码的编写,降低代码重复率#include<stdio.h>// 求两数

2022-01-11 22:05:16 147

原创 C语言从入门到实战——字符串(3)

字符串字符串处理函数9) strncat()#include <string.h>char *strncat(char *dest, const char *src, size_t n);功能:将src字符串前n个字符连接到dest的尾部,‘\0’也会追加过去参数: dest:目的字符串首地址 src:源字符首地址 n:指定需要追加字符串个数返回值: 成功:返回dest字符串的首地址 失败:NULLchar str[20] = “123”;char *src = “

2022-01-10 23:36:09 100

原创 C语言从入门到实战——字符串(2)

字符串字符串处理函数1) gets()#include <stdio.h>char *gets(char *s);功能:从标准输入读入字符,并保存到s指定的内存空间,直到出现换行符或读到文件结尾为止。参数: s:字符串首地址返回值: 成功:读入的字符串 失败:NULLgets(str)与scanf(“%s”,str)的区别:gets(str)允许输入的字符串含有空格scanf(“%s”,str)不允许含有空格注意:由于scanf()和gets()无法知道字符串s大小

2022-01-10 23:35:10 367

原创 C语言从入门到实战——字符串(1)

字符串1.字符数组与字符串区别C语言中没有字符串这种数据类型,可以通过char的数组来替代;字符串一定是一个char的数组,但char的数组未必是字符串;数字0(和字符‘\0’等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组。#include <stdio.h>int main(){ char c1[] = { 'c', ' ', 'p', 'r', 'o', 'g' };

2022-01-10 23:28:55 145

原创 C语言从入门到实战——数组

数组在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。数组属于构造数据类型:一个数组可以分解为多个数组元素:这些数组元素可以是基本数据类型或构造类型。int a[10]; struct Stu boy[10];按数组元素类型的不同,数组可分为:数值数组、字符数组、指针数组、结构数组等类别。int a[10];//数值数组char

2022-01-10 10:34:46 556

原创 C语言从入门到实战——程序流程结构

程序流程结构C语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。顺序结构: 程序按顺序执行,不发生跳转。选择结构: 依据是否满足条件,有选择的执行相应功能。循环结构: 依据条件是否满足,循环多次执行某段代码。1.选择结构1) if语句如果判断条件成立则执行结果,否则程序结束#include <stdio.h>int main(){ int a = 1; int b = 2; if (a > b) { printf("%d\n", a);

2022-01-09 14:41:17 90

原创 C语言从入门到实战——运算符与表达式

运算符与表达式1.常用运算符分类 运算符类型 作用 算术运算符 用于处理四则运算 赋值运算符 用于将表达式的值赋给变量 比较运算符 用于表达式的比较,并返回一个真值或假值 逻辑运算符 用于根据表达式的值返回真值或假值 位运

2022-01-09 14:21:11 96

原创 C语言入门到实战——数据类型(4)

计算机内存数值存储方式1.原码一个数的原码(原始的二进制码)有如下特点:a.最高位做为符号位,0表示正,为1表示负b.其它数值部分就是数值本身绝对值的二进制数c.负数的原码是在其绝对值的基础上,最高位变为1下面数值以1字节的大小描述: 十进制数 原码 +15 0000 1111 -15 1000 1111 +0 0000 0000

2022-01-08 11:41:01 83

原创 C语言入门到实战——数据类型(3)

1.数据的输入 scanfscanf通过%转义的方式可以得到用户通过标准输入设备输入的数据。语法: scanf(“格式”,数据的地址)示例://整型输入void test01(){ //scanf("格式化",输入数据内存地址) //scanf有阻塞功能,有数据才执行,通过画图讲解缓冲区概念以及如何输入的数据 int num = 0; printf("请重新给num赋值:\n"); scanf("%d", &num); printf("num = %d\n", num);

2022-01-08 11:32:48 96

原创 C语言入门到实战——数据类型(2)

数据类型数据类型的作用:编译器预算对象(变量)分配的内存空间大小。1.整型整型变量作用:整型变量表示的是整数类型的数据常用的整型有:short、int、long、long long 数据类型 占用空间 取值范围 short(短整型) 2字节 (-2^15 ~ 2^15-1) int(整型) 4字节 (-2^31 ~ 2^31-1)

2022-01-08 11:25:23 457

原创 C语言入门到实战——数据类型(1)

1.常量与变量变量变量:在程序运行过程中,其值可以改变变量在使用前必须先定义,定义变量前必须有相应的数据类型变量特点:a.变量在编译时为其分配相应的内存空间b.可以通过其名字和地址访问相应内存声明和定义区别声明变量不需要建立存储空间,如:extern int a;定义变量需要建立存储空间,如:int b =10;#include <stdio.h>int main(){ //extern 关键字只做声明,不能做任何定义,后面还会学习,这里先了解 //声明一个变量a

2022-01-08 11:04:46 395

原创 C语言从入门到实战——初级代码分析

初级代码分析1.include头文件包含#include的意思是头文件包含,#include <stdio.h>代表包含stdio.h这个头文件使用C语言库函数需要提前包含库函数对应的头文件,如这里使用了printf()函数,需要包含stdio.h头文件。可以通过man 3 printf查看printf所需的头文件#include< > 与 #include ""的区别:< > 表示系统直接按系统指定的目录检索""表示系统先在 ‘’ ''指定的路径(没写路径代

2022-01-08 10:40:03 789

原创 C语言从入门到实战——C语言概述

C语言从入门到实战C语言概述1. 什么是C语言2.语言的层次3.语言进化史4.为什么要学习C语言4.1语言特点4.2学习C语言理由4.3 C语言应用领域4.4 学习C语言的常见困惑C语言概述1. 什么是C语言 一提到语言这个词语,自然会想到的是像英语、汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。而今天计算机遍布了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机角落。用什么的什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言,而C语言

2022-01-07 23:47:18 391

原创 C++ 继承

C++ 继承C++继承基类 & 派生类继承类型多继承C++继承面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。继承代表...

2019-11-11 15:57:54 96

原创 阅EastMount 博客有感

EastMount 博客有感今天看到杨秀璋老师的博客https://blog.csdn.net/Eastmount/article/details/102599092,突然从杨老师这十年的经历反思起了自己。以前做项目、遇到问题,都是在博客借鉴别人的方法或者解决方案,一直没有想过自己应该把自己的经验分享出来,这样才能带动整个圈子的活跃。一年前,看到我还是一名研究生的时候看到我的学弟在学完C++、...

2019-10-23 12:14:07 1394 2

原创 2、C++类的简要理解(二)

C++类的简要理解C++ 友元函数C++ 内联函数C++ this 指针C++ 指向类的指针C++ 类的静态成员静态函数成员C++ 友元函数类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,...

2019-10-22 11:10:39 118

原创 2、C++类的简要理解(一)

C++类的简要理解C++ 类定义定义 C++ 对象C++ 类成员函数C++ 类访问修饰符公有(public)成员私有(private)成员保护(protected)成员类构造函数与析构函数类的析构函数C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中...

2019-09-26 16:11:55 339

原创 1、C++数据结构的简要理解

C++数据结构的简要理解C++ 数据结构访问结构成员结构作为函数参数指向结构的指针typedef 关键字C++ 数据结构C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:TitleAuthorSubjectBo...

2019-09-26 14:00:41 187

原创 Win10环境下配置CUDA10和ZED相机,同时安装OpenCV3.4.1

Win10环境下配置CUDA10和ZED相机,同时安装OpenCV3.4.1和OpenGL相关软件下载配置相关文件相关软件下载首先,需要在ZED官网https://www.stereolabs.com/developers/release/下载ZED的SDK。其次,需要在Nvidia的官网下载相关的CUDA10的包。https://developer.nvidia.com/cuda-down...

2019-08-05 15:51:02 1651

原创 Ubuntu18.04安装OpenCV3.4.6和OpenCV_contrib-3.4.6的教程与常见问题解决

Ubuntu18.04安装OpenCV3.4.6和OpenCV_contrib-3.4.6的教程与常见问题解决安装OpenCV3.4.6安装OpenCV_contrib-3.4.6常见问题安装OpenCV3.4.6首先,安装相关的依赖包。sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-...

2019-07-09 12:22:40 5801 2

原创 VS2017中常见的错误及解决办法

VS2017中常见的错误及解决办法1、LINK : fatal error LNK11042、LINK : fatal error LNK1561无法打开math.h等源文件debug模式下的链接库问题1、LINK : fatal error LNK1104LINK : fatal error LNK1104 can not open file xxxxx.lib其实是一种链接器错误,只需...

2019-06-24 12:10:13 5743

原创 Ubuntu18.04+ROS+Nvidia+CUDA10.0+OpenCV3.4.6+ZED包的安装测试

Ubuntu18.04+ROS+Nvidia+CUDA10.0+OpenCV3.4.6+ZED包的安装测试Ubuntu18.04的安装ROS(Melodic)安装1.更换源Nvidia安装安装CUDA10.0OpenCV3.4.6安装ZED SDK的安装与调试Ubuntu18.04的安装首先,从官网https://ubuntu.com/download/desktop下载Ubuntu18.04...

2019-06-18 16:07:16 2645

原创 动态窗的口法(DWA)与Matlab中gif动态图的制作

动态窗的口法(Dynamic Window Approach,DWA)与Matlab中gif动态图的制作动态窗口方法是由Dieter Fox,Wolfram Burgard和Sebastian Thrun在1997年开发的用于移动机器人在线避障的一种策略。动态窗口法根据机器人模型自身的有限速度和加速度约束,将笛卡尔坐标(x,y)转换成一组机器人速度集合(v是机器人的直线速度,w为机器人的角速度)...

2019-05-17 09:12:08 3404 4

原创 ROS学习的基本操作指令(三)

ROS学习的基本操作指令(三)ROS常规操作指令ROS操作系统是通过命令行操作完成基础功能,平时工作中使用的命令工具如下:1、文件系统命令行工具使用方法:2、常见命令行工具3、记录命令行工具4、tf命令行指令...

2019-05-16 09:36:05 178

原创 ROS学习的基本操作指令(二)

ROS学习的基本操作指令(二) Ubuntu常规操作指令Ubuntu常规操作指令Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统, 是基于Debian GNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造。同时,它也是ROS的得核心架构,目前的主流版本有Ubuntu14.04、16.04、18.04。...

2019-04-24 10:24:43 334

原创 ROS学习的基本操作指令(一)

ROS学习的基本操作指令(一)Linux常规操作指令Linux常规操作指令机器人操作系统(ROS)是一种基于Linux内核的开源系统,因此在学习ROS之前需要了解并熟悉Linux的常规操作指令。1、文件操作指令lsls 浏览当前路径下文件ls -a 浏览当先路径下隐藏的文件(目录)ls -l 显示当前路径下目录文件的详细信息ls -t 以时间排序浏览当前的目录文件ls -r 以...

2019-04-23 11:53:12 802 1

空空如也

空空如也

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

TA关注的人

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