自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

原创 09_其他特殊函数

swap。

2025-03-28 11:12:55 398

原创 08_三五原则

【代码】08_三五原则。

2025-03-28 11:08:34 258

原创 07_继承中的析构

这句话的含义是:我们定义派生类的析构函数时,不用管基类部分的成员,只撤销派生类自己的成员即可(如果需要的话)。处理继承层次中的对象时,指针的静态类型可能与被删除对象的动态类型不同,可能会删除实际指向派生类对象的基类类型指针,此种行为是未定义的。从上面我们看到,当我们delete pD4的时候,先调用了派生类的析构函数,然后又自动调用了基类的析构函数。派生类的析构函数不负责撤销基类对象的成员,编译器总是显式调用派生类对象基类部分的析构函数。但是,基类指针指向派生类对象的情况又是经常遇到,不可避免的。

2025-03-28 11:07:42 736

原创 06_析构函数

所以,如果我们在析构函数中有清除堆数据的语句,调用两次意味着第二次会试图清理已经被清理过了的,根本不再存在的数据!如果对象被建立在堆上,系统就不会自动调用。因为显式调用析构函数不会释放Fred对象本身的内存,也就是栈内存,所以不要这么做,记住delete做了2件事情:调用析构函数和回收内存。用户显式调用析构函数的时候,只是单纯执行析构函数内的语句,不会释放栈内存,摧毁对象。系统隐式调用析构函数的时候,会加入释放栈内存的动作(而堆内存则由用户手工的释放):显式调用的时候,析构函数相当于的一个普通的成员函数。

2025-03-28 11:01:24 599

原创 05_移动构造和移动赋值运算符

移动构造函数的核心目的是将源对象的资源所有权转移到目标对象,这通常涉及修改源对象的状态,例如将源对象的指针置为。移动构造函数的核心目的是将源对象的资源所有权转移到目标对象,这通常涉及修改源对象的状态,例如将源对象的指针置为。从输出可以看出,原来的两次拷贝构造和析构变为了两次移动构造,这仅涉及到内存的移动,所以节省了工作。从输出可以看出,原来的两次拷贝构造和析构变为了两次移动构造,这仅涉及到内存的移动,所以节省了工作。会导致在移动构造函数中无法修改源对象的状态,从而无法完成资源的转移。

2025-03-28 10:55:18 659

原创 04_移动操作基础

什么是左值和右值(通俗理解)?

2025-03-28 10:48:00 991

原创 07 单目标定-投影应用

学完本文,您将获得以下技能:1:空间三维坐标点向图像投影,包括投影到上两种方式2:AR示例,三维立方体投影到图像上功能:Projects 3D points to an image plane.从Note中可以看出,该函数有多样化的应用。根据相机标定结果,可以将空间点向图像平面进行投影,可以投影到原图也可以投影到去图像上,下面我们来看下两种投影方式的区别。以下是两种投影结果,具体代码参考github。

2025-03-27 16:17:49 193

原创 06 单目标定-去畸变

学完本文,您将获得以下技能:1:深入理解多种去畸变函功能:图像去畸变,图像点去畸变,不同去畸变方法组合等等2:深入理解remap3:如何将去畸变图像上点映射到畸变图像上?4:如何对单目图像上任意ROI区域的畸变矫正?图像畸变去除是相机标定的最直接应用。opencv中有多种图像畸变去除函数,我们将对其进行深入讲解和代码演示。

2025-03-27 16:13:27 21

原创 05 畸变矫正原理

的undistort()函数,cameraMatrix是源相机的内参矩阵,newCameraMatrix是目标相机的内参矩阵,如果不设置newCameraMatrix,则默认与源相机内参一样,即去畸变后,相机的内参矩阵不变。图像去畸变的思路是:对于目标图像(无畸变)上的每个像素点,转换到normalize平面,再进行畸变并投影到源图像(带畸变), 获取原图对应位置的像素值作为目标图像该点的像素值。我们已知的是畸变后的图像,要得到没有畸变的图像就要通过畸变模型推导其映射关系。,即畸变是施加在归一化相机平面。

2025-03-27 16:07:08 13

原创 04 单目标定实战示例

看文本文,您将获得以下技能:1:使用opencv进行相机单目标定实战2:标定结果参数含义和数值分析3:Python绘制各标定板姿态,查看图像采集多样性4:如果相机画幅旋转90°,标定输入参数该如何设置?5:图像尺寸缩放,标定结果输出有何影响?6:单目标定结果应用OpenCV单目标定函数功能详细参数说明查看。

2025-03-27 16:02:44 265

原创 03 相机标定图像采集

为了实现良好的标定效果,以下因素在标定数据采集前必须设置得当。

2025-03-27 15:57:47 311

原创 02 相机标定相关坐标系

因此,它们也属于摄像机的固有参数。例如,如果摄像机是根据 320 x 240 分辨率的图像进行校准的,那么同一摄像机拍摄的 640 x 480 图像也可以使用完全相同的失真系数,而 fx、fy、cx 和 cy 则需要进行适当的缩放。以下表示相机成像过程的四个坐标系关系。其中x‘ 和 y’即为相机坐标系归一化平面上点,后续畸变矫正会使用这个信息。世界坐标系->相机坐标系->图像物理坐标系->图像像素坐标系。的情况下,世界坐标系中的点到图像像素坐标系的变换关系是。相机坐标系变换到图像像素坐标系,即相机。

2025-03-27 15:56:16 292

原创 01 相机标定与相机模型介绍

介绍常见标定相机模型-镜头角度分类

2025-03-27 15:53:27 408

原创 [二值图像处理] 骨架线提取、骨架端点、交叉点提取

在骨架图像拓扑分析时,骨架的端点和交叉点尤为重要。下面我们介绍形态学的击中击不中(hit-and-miss)算法如何在骨架图像上提取这些关键点。有个端点和交叉点后,我们可以进一步分析骨架图像的拓扑结构等信息,进而对骨架进行分叉去除、长度计算、主干提取等操作。从模板的结构上可以发现,它只匹配至少有两个像素的线条,匹配的像素被背景像素 "盖住 "或 "包围"。LineJunctions模板将找到3条或更多的线形成的交界处的点,模板核如下图所示。端点提取的模板如下图所示,提取交叉点和端点的效果。

2025-03-27 15:37:42 513

原创 [二值图像处理] 二值图像骨架提取

二值图像细化,骨架线提取算法

2025-03-27 15:30:22 731

原创 03_深入了解拷贝构造函数、拷贝赋值运算符

拷贝赋值运算符的返回值为引用类型比较好,在给多个对象赋值时,可以节省内存开支。定义: 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都是默认值,则此构造函数是拷贝构造函数。不可以,根据定义,参数是指针类型的构造函数可以是转换构造函数,但不可以是拷贝构造函数。如果其参数不是引用类型,则需要拷贝实参,又需要调用拷贝构造函数,如此无限循环。拷贝赋值和移动赋值指针成员数据时,需要先释放旧数据,再将rhs赋值到旧数据。// 引用传递运行结果。// 值传递运行结果。

2025-03-27 14:43:41 612

原创 02_深入了解构造函数

深入了解构造函数

2025-03-27 13:56:15 606

原创 01_现代C++特殊成员函数

总结特殊成员函数类别及学习和面试重点。

2025-03-27 11:24:14 230

原创 C++构造函数详解

一、概念1.控制类对象初始化过程的一个或几个特殊的成员函数,叫做构造函数。2.构造函数的任务是构造初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。3.构造函数名与类名相同,不能被const修饰。二、合成的默认构造函数1.它的产生:如果没有为类显式的定义任一构造函数,那么编译器合适的时候会为我们隐式的定义一个默认构造函数,它又被称为合成的默认构造函数。2

2016-12-26 15:07:44 2440

原创 VS2015中Qt5.7和OpenCV2.4.10配合打开图片和视频

熟悉Qt的基本使用后终于可以与opencv结合了,Qt搭建不错的界面,opencv提供底层算法支持,想想还是挺不错的。关于两者的结合,首先参考以下两篇文章,看完这两篇文章基本使用应该不成问题了。1.在opencv中实现MVC架构2.Qt框架下快速应用opencv这是我的实例代码,可以实现基本的图片显示和视频播放功能,以及上两篇的事件代码也保留了。需要注意的是图片路径好像

2016-12-11 15:10:59 1788 1

原创 Qt两种常用事件说明

QT的事件处理层次有5类,这里主要介绍常用的两类。1.重新实现部件的paintEvent()、mouseEvent()等事件处理函数。这是最常用的一种方法,不过它只能用来处理特定部件的特定事件。2.在对象上安装事件过滤器。使用事件过滤器可以在一个界面类中同时处理不同子部件的不同事件。

2016-12-10 21:11:51 1059

原创 QT5.7在VS2015中的使用(3)

搭建好了界面部件,只是编程的开始,如何在应用程序中操控这些部件才是更重要。这篇博文将讲解如何去操作界面上的widgets部件。首先,我们要知道窗体的使用有两种方式,编译时和运行时,这里我主要说明在编译时的使用。一、编译时用户界面处理我们使用QT设计师编辑好界面后,回到VS界面进行编译,就会生成对应界面的“ui_***.h”文件,它包含了窗体的用户界面对象和一些函数,以下是类内容的分析。

2016-11-28 10:19:50 2656

原创 QT5.7在VS2015中使用(2)

QT Main window的布局管理、菜单、工具栏和动作编辑器的使用。

2016-11-27 19:33:40 2738

原创 QT5.7在VS2015中的使用(1)

一、使用背景最近开始准备编写毕业论文的软件部分。我的论文内容与双目视觉有关,算法部分基于OpenCV开发,OpenCV的highGUI显然无法完成界面对好用、漂亮的定义。本来想使用C#配合EmguCV开发这个软件,但是感觉EmguCV使用的便利性与OpenCV无法相比,而且资料较少,遇到问题容易卡壳。所以,我准备使用QT来做软件界面,业务逻辑部分使用C++,互取长处。二、开发环境我的开

2016-11-27 16:35:55 6800

原创 理解图像空间域操作

1.工作一段时间的体会暑假期间我排除一些干扰,终于得以出来实习。实习时间只有两个月,但是希望能够有所收获吧。真正专心地学习图像知识和C++只有四个月左右的时间,正好利用这次实习的机会来感受一下图像处理行业。学习图像时,基本的练习都是用书本提供的图片、代码,去验证书上的处理效果,当然结果都是差不多的。在熟悉算法的同时,却往往会忘了思考为什么要用这样的方法处理。实习阶段,我感受到对图像知识数学

2016-08-06 19:55:35 3709

原创 队列的使用—WIN32控制台贪吃蛇(VS2010,C++语言)

VS2010平台C++开发的基于数组实现的贪吃蛇小程序

2016-06-01 20:21:35 3206

原创 线性结构总结(2)-线性结构关系与应用

1.线性结构关系线性链表通过一些改变可以实现多种其他的线性结构,关系如下,在有上一节链表操作的基础上就可以这些复杂一些的数据结构。2.线性结构的使用线性链表:以多项式计算和表达式计算为例进行运用。栈:栈在回溯算法中用于回溯控制是非常有效的,在递归程序转为非递归程序中也会用到栈,我将以迷宫和八皇后问题来说明栈的使用。队列:我将以一个WIN32控制台写的

2016-05-14 16:53:37 629

原创 线性结构总结(1)-基于链表的实现

1.开篇之言本人非计算机专业,自学数据结构和算法为图像处理和模式识别打基础,如有错误,感谢指正。数据结构是人们为了方便计算机处理数据而将数据进行合理组织的一门学问。数据结构也反映了人们对事物间关系的认知,由于计算机内存只有一种结构即线性结构,所以人们想要使用计算机来表示世界中一些非线性结构,如树、图等,就必须对它们进行转换为线性结构,从而使得计算机可以表示和处理。数据结构中的线性结构主

2016-05-14 14:52:58 629

qt5.6+opencv2.4.10打开图片和视频

在VS2015中结合qt5.6和opencv2.4.10,实现打开图片和播放视频,两种操作可任意切换,代码中还保留了博客中介绍的事件代码

2016-12-11

WIN32控制台贪吃蛇(VS2010,C++)

VS2010平台win32控制台下开发的C++贪吃蛇小游戏,500行左右,可作为练习使用

2016-06-01

空空如也

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

TA关注的人

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