自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

你好,明天,,的博客

计算机相关,写文章

  • 博客(132)
  • 资源 (1)
  • 收藏
  • 关注

原创 VMware安装Ubuntu虚拟机实现C++OpenCV代码在虚拟机下运行教程

设置C++标准 set(CMAKE_CXX_STANDARD 20) # 使用C++20 set(CMAKE_CXX_STANDARD_REQUIRED ON) # 强制要求编译器支持 set(CMAKE_CXX_EXTENSIONS OFF) # 禁用编译器扩展(保持标准行为)使用安装好的VS打开imgProc.hpp、imgProc.cpp、Host.cpp文件,将代码写入并保存,这个过程和Windows系统下在VS写代码的过程是一样的。这里我下载的是20.04LTS版本,对应。

2025-04-02 16:32:51 511

原创 OpenCV三维解算常用方法C++

函数的作用是将像素坐标转换为归一化相机坐标(normalized camera coordinates)。进行计算,这是一个标准的立体视觉技术,用于通过两个相机视角中的匹配点估算其三维坐标。归一化后的坐标,它们不再依赖于摄像机的焦距和像素比例,因此可以用于三角测量。通过 X′=X/W,Y′=Y/W,Z′=Z/W 得到真实的三维坐标。计算三维点的位置时,假设输入的点是在无畸变的相机坐标系下。,那么投影矩阵可以简化为 P=[R∣T](去除了相机内参)。这里的 (xc,yc) 是归一化相机坐标,表示。

2025-03-25 11:00:02 590

原创 双目系统求坐标系A到坐标系B的旋转矩阵和平移向量——C++代码实现

双目系统求解一个坐标系到另外一个坐标系的 R 和 T 最常用的方法是基于,这个方法在计算机视觉和 3D 配准中被广泛使用,也称为。需要有两个坐标系测量的点,至少有3组对应点(能够组成一个平面的点,即不是一条直线上的点),通过这几组对应点来求解旋转矩阵和平移矩阵。首先,计算和中点集的质心(中心点):然后,将点集转换为计算到的。

2025-03-04 17:28:45 392

原创 双目视觉三角测量C++代码实现&不使用OpenCV

这种方法的核心在于利用摄像机的内参和相对位姿(由旋转矩阵和平移向量描述),将图像中的像素坐标转换为三维空间中的射线,并通过求解这些射线的交点来确定物体的空间位置。其中,Pl[2, :] 表示投影矩阵Pl的第三行,而Pl[0, :]表示Pl的第一行,Pr[2, :]和Pr[1, :]分别表示矩阵Pr的第三行和第一行,X是需要解的三维点的齐次坐标。表示左相机在世界坐标系中的位置,这里以左相机为参考坐标系,R是右相机相对于左相机的旋转矩阵,T是右相机相对于左相机的平移向量。首先,左相机的投影矩阵Pl为。

2025-02-11 14:47:01 926

原创 双线性插值——C语言代码

双线性插值是一种图像处理中的常用方法,用于在二维平面上根据邻近像素的值来估计目标像素的值。对于像素坐标的求解,为了使坐标计算的更准确,通常会采用插值的方式使边缘细化,同时避免锯齿状边缘。经过插值后可以生成介于原始像素值之间的平滑过渡,增强图像细节,使得边界更柔和,坐标更连续,减少锯齿效应。细分的倍数由新图像的尺寸决定。

2024-11-14 15:03:52 463

原创 彩色圆形检测函数不使用OpenCV——C语言代码

代码进行了几次修正,需要注意的是BMP图像是以左上角为原点,以向右为x轴正方向,向下为y轴正方向。在求解中心点坐标时需要注意。软件打开图像查看黄色矩形中心点像素坐标以检验检测结果。

2024-10-30 14:10:53 426 2

原创 彩色矩形检测函数不使用OpenCV——C语言代码

代码进行了几次修正,需要注意的是BMP图像是以左上角为原点,以向右为x轴正方向,向下为y轴正方向。在求解中心点坐标时需要注意。软件打开图像查看黄色矩形中心点像素坐标以检验检测结果。

2024-10-30 13:58:39 203

原创 双目视觉三角测量C语言代码实现&不使用OpenCV

在双目视觉系统中,三角测量是一种基于几何原理的三维重建技术,通过分析同一场景在两个不同视角下的二维图像来确定物体的三维坐标。这种方法的在于利用摄像机的内参和相对位姿(由旋转矩阵和平移向量描述),将图像中的像素坐标转换为三维空间中的射线,并通过求解这些射线的交点来确定物体的空间位置。代码方面,利用相机内参和对极几何关系,从二维像素坐标(u, v)解算出三维世界坐标(X, Y, Z)。通过相机内参矩阵,二维图像点被转换为相机坐标系下的射线。

2024-10-24 10:27:59 438

原创 C4996‘sprintf‘: This function or variable may be unsafe. Consider using sprintf_s instead.

将 sprintf 改为 sprintf_s,需要注意函数的结构也要修改,sprintf_s需要添加参数 sizeof(xxx)。是否添加 #define _CRT_SECURE_NO_WARNINGS 对代码报错无影响。还有一种解决方法是在文件头中添加。是否添加 #define _CRT_SECURE_NO_WARNINGS 对代码报错无影响。还有一种解决方法是在文件头中添加。将 fscanf 改为 fscanf_s。

2024-10-23 10:48:30 541

原创 OpenCV双目视觉三角测量代码实现C++

在双目视觉系统中,,通过分析同一场景在两个不同视角下的二维图像来确定物体的三维坐标。这种方法的核心在于利用摄像机的内参和相对位姿(由旋转矩阵和平移向量描述),将图像中的像素坐标转换为三维空间中的射线,并通过求解这些射线的交点来确定物体的空间位置。

2024-10-22 13:50:59 841

原创 OpenCV双目相机外参标定C++

库实现双目测量系统外参标定过程。通过分析双目测量系统左右相机拍摄的棋盘格标定板图像,包括角点检测、立体标定、立体校正和畸变校正的步骤,获取左右相机的相对位置关系和姿态。检测每张图像中的棋盘格角点,并进行亚像素级精确化;根据左右相机的角点坐标、三维坐标、内参矩阵和畸变系数,计算旋转矩阵。输出为双目测量系统的标定结果,包括旋转矩阵、平移向量、投影矩阵和重投影矩阵,并通过。,利用最小二乘法最小化重投影误差;根据标定结果对图像进行畸变。展示校正后的图像和视差图,以评估标定质量。

2024-10-22 11:29:06 698

原创 OpenCV单目相机内参标定C++

地,使用库函数检测两组图像(左右相机拍摄图像)中棋盘格的角点;对检测到的角点进行亚像素级别的精确化,以提高角点位置的准确性;根据左右相机拍摄的棋盘格图像及角点位置,计算出两个相机的内参矩阵及畸变系数;生成畸变校正和图像校正的映射表。是左右相机的内参矩阵和畸变系数,以及每幅图像的旋转向量和平移向量,最后计算并输出标定结果的总体平均误差,以评估标定过程的准确性。通过角点检测、亚像素角点定位、角点存储与三维坐标生成和摄像机标定分别获取左右相机的内参。

2024-10-22 10:49:00 538

原创 OpenCV未定义标识符CV_XXX

如果代码是基于旧版本的OpenCV编写的,而环境中安装的是一个更新的版本,可能会导致一些标识符被重命名或移除,导致不匹配情况。报错“未定义标识符CV_XXX”,即编译器找不到常量。

2024-10-22 10:11:41 427

原创 彩色椭圆及矩形检测函数不使用OpenCV——C语言代码实现

代码功能:基于颜色阈值检测图像中的椭圆或圆形,并输出椭圆或圆形的中心点坐标。代码不使用OpenCV,通过遍历像素实现。可以通过如下生成椭圆图像的代码来验证上述代码的功能。

2024-10-18 14:52:57 392

原创 生成包含彩色椭圆图像——C语言代码实现

示例代码生成1920*1080大小的.bmp彩色图像,图像中包含一个红色。椭圆的位置,大小,颜色可以根据需要修改。圆的位置,大小,颜色可以根据需要修改。,图像背景颜色为黑色。

2024-10-18 14:44:27 238

原创 Pycharm连接AutoDL服务器 文件上传 启动终端

租用新实例。

2024-10-10 16:38:17 382

原创 Unity3D相关知识点总结

Unity3D使用的是,并且是以左手坐标系进行展示的。全局坐标系描述的是游戏对象在整个世界(场景)中的相对于坐标原点(0,0,0)的位置。我们在场景中创建一个cube,初始的position值为(0,0,0),表示它当前在原点位置,如果我们设置它的position属性值为(1,2,3),则此时表示,cube相对于世界原点在x轴上偏移了1个单位,在y轴上偏移了2单位,在z轴上偏移了3个单位(注:unity中单位为米,即每单位为1米)。场景中的游戏对象都有属于自己的独立坐标系,也称为。

2024-10-10 16:36:11 1076

原创 TCP数据传输——C++代码实现

以坐标数据为例,通过TCP协议向同一局域网下指定计算机传输数据。C++代码实现。

2024-10-10 16:06:54 799

原创 生成靶标图像代码——C语言代码实现

每张图像中包含两个靶标,第一组左右相机拍摄的图像包含靶标1和2,第二组包含靶标3和4。同时输出生成靶标的位置。两个相机在x轴方向上平移。

2024-09-30 15:43:12 454

原创 两帧BMP图像差分处理——C语言代码实现

第2中方法是根据既定的阈值进行二值化处理,下面这种方法是自适应阈值处理。以用时最短为目标,不进行灰度化等其他处理步骤。

2024-09-30 15:18:37 431

原创 Mimics21软件学习总结

(1)安装完成后先不要运行软件,找到安装目录下LicSrvConfig.exe,管理员身份运行后,点stop,默认路径在:C:\Program Files (x86)\Common Files\Materialise\LicenseFiles6,成功关闭后,关闭LicSrvConfig.exe窗口。⑥ 选择第一项“custom”(自定义),再选择安装位置,默认路径为“C:\Program Files\Materialise\”,随后点击“next”;(9)点击register注册按钮,提示成功,点确定。

2024-04-23 19:51:34 1335

原创 面经——面试中常问到的计算机网络相关问题

响应包括状态码(表示请求成功、失败或其他状态)、响应头(包含有关响应的信息)和实际的响应体(包含请求的数据或HTML内容等)。渲染完页面后,浏览器和服务器之间的TCP连接可能会被关闭,除非使用了持久连接(HTTP keep-alive)来保持连接以供未来使用。总的来说,HTTPS是HTTP的安全版本,通过使用加密和认证技术,提供了更高级别的数据安全性,尤其在涉及用户敏感信息的网站上更为重要。HTTPS还涉及到服务器的身份验证,以确保用户连接到的是正确的服务器,防止中间人攻击。

2024-01-29 11:37:10 1211 1

原创 Python八股文总结

lambda函数是一种匿名函数,通常用于简化代码,特别是在函数参数中传递简单的功能。

2024-01-15 12:15:48 12475 4

原创 Python数据类型转换

数据类型的不一致可能导致分析错误,因此在数据清洗中通常需要对数据类型进行转换。

2024-01-08 15:22:31 847

原创 关于简单的数据可视化

安装数据可视化必要的openpyxl、pandas,matplotlib等软件包,对Excel进行数据可视化操作。

2024-01-02 17:28:21 874

原创 关于运维工作和Linux的理解

他们的工作涵盖了广泛的领域,旨在确保系统的高可用性、性能和安全性。1. 系统监控和故障排除:监视服务器和网络,及时发现并解决潜在的问题,确保系统的正常运行。总体而言,Linux在运维中的作用是提供一个可靠、高性能、安全和可定制的操作系统环境,支持各种应用和服务的稳定运行。8. 自动化和脚本:Linux系统支持丰富的命令行工具和脚本语言,如Bash、Python等,用于自动化运维任务。7. 安全性和权限管理:Linux系统具有强大的安全性和权限管理机制,运维人员可以通过用户和权限设置来控制对系统资源的访问。

2023-12-04 15:55:58 904 1

原创 数据结构知识点总结

图的存储使用:①邻接矩阵:二维矩阵,如A[i][j]=n(权值)或者A[i][j]=0/1,无线图的邻接矩阵是对称矩阵。①自底向上堆化:会产生“气泡”浪费存储空间,用于插入元素,即先将元素放至数组末尾,上浮。堆的插入和删除效率高,时间复杂度是O(logn),初始化的时间复杂度是O(n)。递归,排序,二分查找,搜索,哈希算法,分治算法,动态规划,字符串匹配算法等。②自顶向下堆化:用于删除堆顶元素,将末尾元素放至堆顶,再向下堆化,下沉。数组,栈,队列,链表,散列表,二叉树,堆,跳表,图,树。

2023-10-17 11:09:42 497

转载 Python使用库函数对列表数据进行排序

例如,如果我们有一个列表需要根据其中的元素进行排序,可以使用以下代码:运行结果为:这里使用的lambda函数表示按照元组中的第一个元素进行排序。再如:运行结果为[1, 2, 3, 6, 7, 90]。

2023-10-14 17:18:28 686

原创 SQL及数据库基础知识点总结

truncate和drop是DDL 语句,也就是 Data Definition Language 数据定义语言,它是用来维护存储数据的结构指令,所以这点也是和 delete 命令是不同的,delete 语句属于 DML,Data Manipulation Language 数据操纵语言,用来对数据进行操作的。合并2个/多个select语句的结果,union内部的每个select语句必须拥有相同数量的列,且列拥有相似的数据结构,union结果集中的列名同union中第一个select语句中的列名。

2023-10-14 10:33:37 558

原创 关于系统/网络运维面试经验总结

每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中) 发送者和接收者之间在时间上没有依赖性 接收者在成功接收消息之后需向队列应答成功每个消息都被发送到一个特定的队列,接收者从队列中获取消息。它分为若干个固定大小的内存块,每当有新的对象需要内存时,Python就从内存池中分配一个内存块给它。消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。显示系统的内存使用情况,包括总内存、已使用内存、空闲内存等信息。

2023-10-10 21:16:36 1707

原创 Linux系统中fork()函数的理解

fork()` 的主要用途之一是创建新的进程来执行不同的任务,这在多进程编程中非常有用。因此,现代操作系统通常提供了更轻量级的进程创建机制,如线程(在同一进程中共享资源)或更高级别的进程池管理工具。它们可以有不同的变量值、不同的堆内存和栈内存,但它们共享相同的代码段(通常是相同的可执行文件)。父进程和子进程都会继续执行接下来的指令,但它们会在不同的进程上下文中执行。,该进程是调用进程(父进程)的副本。1. 当父进程调用 `fork()` 时,操作系统会创建一个新的进程,称为。3. 父进程和子进程之间的。

2023-09-12 08:54:08 247

原创 Linux易混淆知识点

etc/passwd是用户基本信息文件,里面定义了用户的ID,用户组的ID等相关信息,所以因为两个文件中都定义了用户组的信息,所以两个文件应该都要改过来,否则会导致用户找不到所属组。:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。僵尸进程的危害主要是占用进程描述符。在出现大量僵尸进程的时候,系统会杀死产生僵尸进程的父进程(因为僵尸进程的产生主要是因为父进程出错,没有获取子进程的状态),会浪费资源。

2023-09-07 15:09:39 330

原创 Linux操作系统知识点总结(二)

使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,做如下修改。所以即使我们在win系统下配置了该主机名和IP地址之间的映射关系,也会因为IP地址的变更而频繁修改。1. VMware中 配置IP地址网关和网段(IP地址范围)。具体步骤:打开VMware→编辑→虚拟网络编辑器→看下图。2. 在Linux系统中手动修改配置文件,固定IP。

2023-08-06 12:55:19 277

原创 Linux操作系统知识点总结(一)(附VMware、CentOS以及finalshell的安装教程)

3. 主板上的芯片组控制各组件的通信,一般分为北桥与南桥:① 北桥复杂连接速度较快的CPU、内存和显卡等组件,② 南桥负责连接速度较慢的周边接口,包括硬盘、USB、网卡等。5. Linux是Torvalds先生所开发出来的,基于GPL的版权声明下,可以在x86的架构下运行,也可以被移植到其他的大型主机上面。计算机的五大单元包括输入单元、输出单元、CPU内部的控制单元、算术逻辑单元与内存五大部分。1. 计算机的组成部分:输入单元,中央处理器(CPU),输出单元。⑥ 相对比较不耗费资源。专业软件的支持度不足。

2023-07-10 17:30:33 830

原创 python基础知识点总结

并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。其中,局部作用域指的是函数内部定义的变量,外部嵌套是指父级函数的局部作用域,全局作用域是全局变量的管理范围,内置模块作用域是指系统内置模块里的变量。:整型,字符串,元组(只读列表,只能查询,不可更改),集合,列表,字典;

2023-07-03 15:10:44 1867

转载 bat脚本/Python代码 实现PNG图片批量转换成JPG图片

第一步:创建一个.txt文件 第二步:在.txt文件中写入ren *.png *.jpg 第三步:右键重命名 将后缀从.txt改为.bat 第四步:将该文件放到要修改的图片的文件夹内,然后双击就可以啦!如果将文件夹下面的所有类型的文件都要修改成jpg格式,用。第三步:右键重命名 将后缀从.txt改为.bat。第一步:创建一个.txt文件。第二步:在.txt文件中写入。

2023-05-29 10:47:26 1847

原创 Python面试题常用函数总结

python面试编程题目经常用到的函数总结。

2023-04-21 09:13:49 963

原创 抽取VOC数据集中的部分类别数据

【代码】抽取VOC数据集中的部分类别数据。

2023-04-16 11:33:34 349

原创 cv2(OpenCV)下载安装

最好下载对应python版本的,通过pip命令安装可能会出现版本过高或者过低的问题,导致import cv2没问题,但是内部函数无法调用。上述对应python版本是3.7~3.11。

2023-04-13 16:31:43 10217

转载 pytorch模型权重与模型微调

随着深度学习的发展,在大模型的训练上都是在一些较大数据集上进行训练的,比如Imagenet-1k,Imagenet-11k,甚至是ImageNet-21k等。但我们在实际应用中,我们的数据集可能比较小,只有几千张照片,这时从头训练具有几千万参数的大型神经网络是不现实的,。因为试用于ImageNet数据集的复杂模型,在一些小的数据集上可能会过拟合,同时因为数据量有限,最终训练得到的模型的精度也可能达不到实用要求。

2023-04-06 17:02:30 1205

计算机系统结构-第一章.docx

包含我对计算机系统结构的总结,主要是第一章的内容,包括计算机的透明性,计算机系统结构的三种分类方法,及相关计算公式和典型例题等......

2020-02-23

空空如也

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

TA关注的人

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