- 博客(47)
- 资源 (5)
- 收藏
- 关注
原创 左值与右值
左值和右值的区分对于理解如何高效地处理C++中的数据非常重要。通过这种区分,C++允许开发者更精细地控制内存分配和资源转移,特别是在涉及复杂资源管理时,如动态内存分配、文件处理等场景。
2024-08-22 17:10:05
286
原创 三维空间刚体运动
三维空间中的刚体运动涉及到刚体在空间中的位置(translation)和方向(orientation)的变化。在机器视觉和机器人领域,尤其是在同时定位与地图构建(SLAM,Simultaneous Localization and Mapping)的应用中,精确地描述和计算这种运动是至关重要的。下面是对三维空间中刚体运动的详细介绍,特别是在SLAM的背景下。位姿描述了一个刚体在三维空间中的位置和方向。通常,位姿由一个三维向量和一个旋转矩阵(或四元数)来表t{t}t(通常是x,y,zx, y, zx,y,z
2024-08-12 00:02:35
330
原创 归并排序(附C++实现及验证)
归并排序的核心思想是将一个大数组分割成两个小数组去解决。然后,这两个小数组排序后再将它们合并起来。这个过程中的基本操作是比较两个数组的最前面的数,将较小的数先取出,放到输出数组中。通过递归的方式不断将数组分解,直到每个小数组只有一个元素,认为每个小数组都已经有序,再将它们合并成一个有序的数组。
2024-08-11 21:31:29
492
原创 双目三维重建———基本概念介绍
双目相机系统包括两个同型号的相机,它们被固定在一定的距离(基线距离)上,且相机的光轴平行对齐。这种布局使得每个相机捕获到的场景图像存在视差,即同一物体在两个相机视图中的位置存在水平位移。利用这种视差,可以计算物体到相机的距离。双目相机系统通过模拟人眼的立体视觉来重建三维空间,广泛应用于自动驾驶、机器人导航和虚拟现实等领域。掌握双目视觉的基本原理和技术可以有效地解决许多实际问题。希望这篇介绍能帮助你理解并应用双目相机生成三维点云的技术。
2024-08-11 19:57:28
1609
原创 普通相机模型(针孔相机模型)——从世界坐标系到图像坐标系
uv1KR∣tXYZ1uv1KR∣tXYZ1这里,( \mathbf{K} ) 是内参矩阵(包含焦距和图像中心坐标),[ \mathbf{R} | \mathbf{t} ] 是外参矩阵(包含旋转矩阵和平移向量)。这种表示形式完整地描述了从三维世界到二维图像的转换过程。
2024-08-11 19:08:07
842
原创 快速排序原理与实现
最优时间复杂度OnlognOnlogn平均时间复杂度OnlognOnlogn最坏时间复杂度On2O(n^2)On2快速排序时间复杂度并不稳定,但数据量较大时我们可能需要一种更为稳定的排序算法——比如归并排序。
2024-08-11 18:20:26
420
原创 计算机中的浮点数运算
计算机中以固定长度存储浮点数的方式,造成了浮点数运算过程容易产生上溢和下溢。以float32为例, 其标记位占1bit,指数位占8bit,小数部分占23bit。
2023-03-18 22:52:00
612
原创 动态规划(原理及C++实现)
动态规划 动态规划是运筹学的一个分支,是解决多阶段决策过程最优化的一种数学方法,主要用于以时间或低于划分阶段的动态过程最优化。在计算机领域也多有应用,最广为人知的应该是动态规划解01背包问题。例题 给定n个物料的权重和值,将这些物料放在容量为W的背包中,以在背包中获得最大的总价值。解题策略(一) 递归解题是一种很好的思路,只需要借助简单的逻辑就能实现这个复杂的功能。递归代码#include <iostream>using namespace std;int max(in
2022-04-03 11:20:02
1277
原创 RANSAC算法(原理及代码实现+迭代次数参数自适应)
前言 随机样本一致性 (RANSAC) 是一种迭代方法,用于从一组包含异常值的观察数据中估计数学模型的参数,此时异常值不会对估计值产生影响。简言之,RANSAC是一种滤除噪声的常用算法。算法流程...
2022-04-01 04:00:00
5847
2
原创 SVD奇异值分解(理论与C++实现)
目录前言前言 奇异值分解(singular value decomposition,以下简称SVD)是线性代数中一种重要的矩阵分解。SVD将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。SVD将矩阵AAA分解成三个矩阵的乘积A=UDVT A = UDV^{T}A=UDVT 设AAA是m×nm\times nm×n的矩阵,则UUU是一个m×mm\times mm×m的矩阵,DDD是一个m×nm\times nm×n的矩阵VVV是一个n×nn\time
2022-03-30 00:00:00
3319
1
原创 激光能量分布仿真分析(附Python和matlab实现代码)
前言 初写这个程序时,用的是matlab。然而离开学校以后,价格高昂的matlab软件不再能使用。因此,用Python补充这些程序。如果有读者想要讨论电磁场理论相关的物理学或者编程以及数学,我的邮箱是707101557@qq.com。程序 下面两个程序用简单的方法实现仿真,算法的时间复杂度极高,且没有在编程技巧上进行改进,因此需要运行较长时间。在最后,我改进了变成技巧,加速了程序的运行...
2022-03-29 00:00:00
7304
原创 根据前序遍历、中序遍历还原二叉树
已知前序遍历和中序遍历如何构造二叉树 设有前序遍历(根->左->右):3,9,20,15,7 中序遍历(左->根->右):9, 3, 15, 20, 7算法设计 1. 前序遍历的第一点为根节点 2. 在中序遍历中,根节点的左边为其左子树,右边为其右子树 根据以上特性,设置算法流程如下:确认当前节点、左子树、右子树在左子树中递归在右子树中递归功能代码及测试代码#include <iostream>#include <vector
2022-03-28 00:00:00
1910
原创 windows下动态库的生成与调用
windows下动态库的生成与调用前言DLL简介创建DLL调用DLL作者语参考文献前言 如果想要设计更好的软件,深入理解动态库是十分有必要的,因为动态库与大型C++软件的模块化息息相关。本文主要讲解什么是DLL,以及如何用visual studio生成自己的动态库,并调用自己生成的动态库。本文所介绍的也仅仅是windows下的动态链接库。DLL简介 在windows系统上,dll文件和exe文件实际上是一个概念,他们都是有PE格式的二进制文件,不同之处在于PE文件头部中有个符号位表示该文件是ex
2021-07-18 19:56:33
1708
1
原创 OpenCV+cmake 生成vs工程 和OpenCV动态库(附视频链接)
目录前言学前准备编译OpenCV下载相关库通过CMake生成相关工程下回预告对学者的建议前言 本文是OpenCV学习系列开篇之作,旨在为OpenCV的初学者指明学习的道路,并以vs2019+opencv4.5.1的环境搭建为例,介绍OpenCV的编译过程。学前准备 对于编程功底较好的同学,建议通过OpenCV源码进行学习;对于刚学习编程不久的同学,可以先通过一些教材深入了解OpenCV。笔者推荐的教材是安德里安的学习OpenCV3。编译OpenCV 编译OpenCV的步骤如下,1.下载相
2021-01-31 21:56:25
1477
1
原创 从博弈论的角度出发,解密股民与机构在股票市场中的博弈
前言 博弈论旨在分析游戏中个体的预测行为和实际行为,并研究它们的优化策略。今年的A股市场可谓跌宕起伏,这种股市情形是很容易让股民们亏钱、机构盈利的。怎么证明过程呢?这个过程可能有些抽象,因此我们先用一个故事来让大家了解这个过程的全貌。正面 你在一家咖啡厅遇到了迪丽热巴,她要和你玩这样一个游戏:你们两人各持一枚硬币,如果同时出正面你赢走3个币,同时出反面你赢走1个币;如果是一正一反,迪丽热巴赢走2个币。还未学过博弈论的你,很可能认为你们两个人的收益期望应当是相当的。你会认为在随机情况下,都出正面的概
2020-10-06 16:45:05
2032
原创 QVector与std::vector对比
前言 Qt与STL都提供了诸如QVector之类的容器,在软件开发的过程中,应该使用哪一种容器更为合理呢?笔者认为这取决于你希望如何优化你的软件;如果你在意的是效率,笔者建议你使用vector。实验 vector和QVector都是通过复制构造函数添加对象,但当你执行push_back时,你会发现,vector只调用了一次复制构造函数,而QVector调用了两次复制构造函数。#include <iostream>#include <QtCore/QVector>u
2020-08-08 13:19:52
5333
原创 SVD应用于图像压缩 Python代码测试
前言 利用SVD是可以对图像进行压缩的,其核心原因在于,图像的像素之间具有高度的相关性。代码# -*- coding: utf-8 -*-'''author@cclplusdate:2019/11/3'''import cv2from PIL import Imageimport matplotlib as mplimport numpy as npimport matp...
2020-07-26 15:17:15
2484
原创 双向循环链表(模板实现)
前言&emsp 此前有读者问我,C++的STL中为什么没有循环链表?我想大概率是因为循环链表的应用很少,另外如果使用者对循环链表的理解不足的话还很容易让程序陷入死循环。不过这些都不重要,接下来,笔者将带你实现一个类似STL中的循环链表。...
2020-07-26 14:37:10
253
原创 汇编课设(电子钢琴:源代码)
实现结果程序的启动有点像小霸王游戏机的游戏,喜欢汇编的朋友可以发信与我一起讨论,发声程序参考的是一本汇编教材,程序写作和上传相隔有点久远,记不太清,千行代码,算是学生时代一个比较得意的课设编译器下载编译器可在我的上传资源中查找,已注明:汇编编译器https://download.youkuaiyun.com/download/m0_37772174/10837741注意事项输入严格区分大小写,启...
2020-07-18 11:06:20
4779
13
原创 OpenCV读取1GB以上大图失败解决措施
问题 有医学图像处理的读者问我说,他的OpenCV无法读取他所需要的大图,他的图像以位图形式存储时大小约为1.5GB,使用imread读取时图像为空。原因分析 处于对内存的保护,OpenCV的开发者对imread图像的大小做了限制,这个大小是2的30次方,恰好为1个G,这个同学想通过imread函数读取1.5G的图像,在不修改源码的情况下是不现实的。解决策略 只需要简单的修改OpenCV的源码就足以解决这个问题。 1.打开源码中的imgcodecs模块,找到loadsave.cpp
2020-07-09 23:18:05
4252
4
原创 矩阵运算(一)最小二乘法
最小二乘法前言CPP开发者封装最小二乘法参考文献作者说前言 最小二乘法在函数拟合的过程中广为应用,不少读者使用笔者早期写的矩阵运算库,以求逆的方式得到拟合系数,这种算法虽然简单,但并不健壮;而使用QR分解(induced QR)得到的最小二乘法的结果,不论是在数据精度上的保证,还是算法时间复杂度上都得到了质的飞跃。CPP开发者封装最小二乘法 使用CPP封装最小二乘法的时候,笔者建议使用Eigen库//张九韶算法inline double polyeval(Eigen::VectorXd co
2020-05-10 22:37:22
6080
原创 OpenCV图像轮廓提取
使用了相关算法进行图片轮廓的提取###############图像中的轮廓提取#时间:2019/1/3#作者:cclplus#仅供学习交流使用#如若照片本人认为侵犯了肖像权,请联系我的邮箱707101557@qq.com#如有疑问或者需求,可以联系作者的邮箱#如果你有什么好的建议或者指导,我将不胜感激import cv2import numpy as npfrom ma...
2020-04-09 20:18:08
35277
2
原创 广度优先搜索算法(附C++实现)
在上一篇文章中,笔者介绍了DFS,这篇文章介绍的是图论的另一个经典算法--BFS(广度优先搜索算法)。这一篇文章将对BFS作出介绍。队列的push操作将元素添加到队列的末尾,但pop操作将队列的第一个元素弹出,这与堆栈有差异。我们构造这样一个图(如图1),并通过C++实现BFS,本文处理的图比二叉树要更复杂,如果时针对二叉树的BFS,程序会更为简单算法过程:1.将根节点放入队列...
2020-04-07 20:00:55
26810
1
原创 OpenCV实现图像滤波
图像滤波算法前言代码高斯滤波算法NLmeans滤波算法(Python)各项异性滤波算法邻域滤波算法总变分滤波算法Python学习前言 本文将是一篇为图像处理的初学者准备的滤波算法的入门文章。代码高斯滤波算法#include <cmath>#include <limits>#include <cstdlib>#include <iostre...
2020-04-05 11:34:22
1280
原创 用数学的方法分析情感——写给读完即将脱单的你
用数学的方法寻找脱单攻略情感模型的建立常用名词解析参考文献情感模型的建立 ;情感是人对客观事物是否满足自己的需要而产生的态度体验。常用名词解析 &amp;amp;emsp参考文献[1]:[《心理学大辞典》黄希庭主编 ]...
2020-01-22 19:10:05
587
原创 卡尔曼预测股票(Tensorflow)
Tensorflow实现卡尔曼滤波前言前言 前几篇文章里的矩阵运算都是基于numpy实现的,这里也展示的是使用python进行矩阵运算时常用的一个库——Tensorflow。Tensorflow算是目前最火的一个三方库,在此之前雄踞榜首的三方库一直是JS。 本文将使用Tensorflow实现一个Kalman预测模型,用于预测股票的变化。内核仍然采用Tensorflow实现,留给用户的接...
2019-12-01 13:19:01
3996
3
原创 Python终将成为最火爆的编程语言,因为它是属于大众的
很多培训机构宣称py是人工智能必备的编程语言,打着速成的旗号来引诱学者学习python。事实却并不是这样的,万丈高台平地起,不论你想从事怎样的编程工作,都是从最基本的编程技巧开始的;Python并不适合所有人,如果你是一个编程类专业的学生,适度了解python是有必要的(python的第三方库的爆发造就了不少C/C++程序员的就业),但如果你作为一个非编程类专业但又需要了解编程的人...
2019-11-13 08:30:16
67007
48
原创 RC4无损加密和解密图片
前言 RC4加密算法的特点在于其简单易用且十分高校,一个简单的异或运算就能够对文本进行加密。而且RC4的加密算法是对称的,即原图经过一次RC4操作即得到加密图片,加密图片经过一次RC4操作,即得到解密图片。代码# -*- coding: utf-8 -*-'''date:2019/11/2功能:主要用于RC4的加密和解密算法介绍:RC4是经典的对称加密算法即RC4(原文+密钥)=...
2019-11-12 21:10:29
1646
原创 格雷码
Python数据结构格雷码前言格雷码二进制格雷码转自然二进制码作者说前言 格雷码是由贝尔实验室的Frank Gray与1940年提出,用于在PCM(脉冲编码调变)方法传送讯号,防止讯号出错。其特点是任何两个相邻数的代码只有一位二进制数不同的编码。时至今日,格雷码有了更广泛的作用,比如在遗传算法中,使用自然二进制码来表示基因会造成汉明悬崖问题;而采用格雷码则能够很好的避免这个问题的出现。格雷...
2019-10-30 22:38:39
1382
原创 共轭梯度法(FR法)
优化算法的学习是有一定难度的(也许有人不这么想,但即使你是天赋异禀的天之骄子,敬畏知识也是一种美德)。笔者本着敬畏知识的态度,从基本理论出发,逐步引入优化算法的殿堂。 关于共轭梯度法理论的介绍,可以通过参考文献【1】了解 这里我通过一个例子来介绍共轭梯度法 (1) (2)...
2019-10-27 15:31:45
6337
原创 Win10+Anaconda+Python
Python指南安装python建议去官网下载pythonhttps://www.python.org/downloads注意:64位机最好选择x64,32位机一定选择x86设置pip环境变量python的pip.exe,pip3.exe文件,在Script中因此在环境变量的PATH里新建C:\Python37\Scripts环境变量的设置,我的电脑-&amp;amp;amp;gt;属性-&amp;amp;amp;gt;高级系...
2019-10-26 10:55:25
2865
8
原创 Python数据结构最小生成树
前言 最近收到电力类专业同学的求助,希望能用一个算法使得从变电站至所有负载的总路线最短。当然,如果要添加特殊要求,你可以练习我的邮箱707101557@qq.com。其实应用最小生成树能够很好的解决这类问题。即给定一幅加权无向图,找到它的一颗最小生成树。此类算法主要应用是电路元器件的设计,航空航线规划,电站电力分配,图像分析等领域。最小生成树 图的生成树是它的一棵含有其所有顶点的无环连通...
2019-10-26 10:24:59
2957
原创 遗传算法拟合函数(原理及Python实现)
遗传算法问题描述 利用遗传算法求解如下最优化问题 min F=∑i=13Wig(Qi)min \ \ F = \sum_{i=1}^{3}W_{i}g(Q_{i})min F=∑i=13Wig(Qi) 其中 g(x)=−0.1544×x2+1.181×x+0.6028g(x)=-0.1544\times x^{2}+1.181\tim...
2019-10-11 19:15:54
4001
原创 切比雪夫求积分法(附全过程代码)
前言 这是一篇数值计算算法的开胃菜,主要介绍切比雪夫求积分法的使用;如果你遇到编程和数学的问题,强烈建议找到你身边的算法工程师或者计算机、电子、通信、数学专业的朋友,往往能够事半功倍。求解Gamma函数Gamma函数对特殊值 以下资料来自于维基百科 切比雪夫多项式展开通过求解方程组的方式解出c[i]的值,即可通过c[I]求解出Gamma函数的值···*#写于2019年3月...
2019-05-08 22:26:47
6108
原创 多项式求值(附C++实现)
目录前言一维多项式求值前言 本文主要介绍了一维多项式的求值和二维多项式求值,从算法工程师的视角出发设计更高效的代码。读者可以通过C++代码或者Python代码进一步了解这个算法。一维多项式求值 计算多项式 显然即使是一个萌新程序员也能实现这个功能,但这不等于他的代码足够高效,按照这一公式编写代码,算法的时间复杂度是而比较高明的写法是算法的时间复杂度是//作者:ccl...
2019-03-19 23:06:52
8901
原创 Python与C进行混合编程
目录写在前面在vs中建立一个工程设置调整step1 选择输出目录step2 改变目标文件拓展名step3 添加附加目录step4 添加附加库目录step5添加附加依赖项知识储备条件编译简单例程程序测试信息征集写在前面 阅读这篇文章需要一定的C/C++和Python基础,阅读完这篇文章,你将能够开发简单的Python的库。 笔者所使用的C++编译器是vs2017,所使用的Python版本是...
2019-03-09 20:27:33
3831
原创 干涉衍射仿真实验(python仿真)
###############利用python仿真双缝实验#时间:2018/12/31#作者:cclplus#仅供学习交流使用#如有疑问或者需求,可以联系作者707101557@qq.comimport numpy as npimport matplotlib.pyplot as pltimport math#表示长度的物理量单位m#波长wavelength=float(...
2019-01-01 12:28:56
12358
原创 解色散方程(附C++和matlab代码)
解色散方程Solution of the dispersion equation set then known so Constant establishment So we can use the dichotomyand To avoid losing accuracy,I made some necessary changesset C++实现(C...
2018-11-10 20:34:14
7283
1
opencv_install.rar
2020-02-25
Release.rar
2019-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人