自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 qt连接hiki相机进行拍照保存

控制按钮是否可点击的时候,setEnabled() 和 setClickable() 都可以做到,只要将它们设置成false ,按钮就不可点击,设置成true,按钮就可以点击。subdirs - 这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。设置的这些按钮在代码中会设置bool类型的变量,通过setEnabled(x)是true还是false来判断是否按下按钮。vclib - 建立一个库的Visual Studio项目文件。

2023-12-22 15:31:43 1776

原创 qt简单连接摄像头

需要在.pro文件中添加QT += multimedia multimediawidgets。QCameraViewfinder 用于显示捕获的视频,QCameraImageCapture 用于截图。QCamera 类用于打开系统的摄像头设备,mainwindows.h文件。要使用摄像头,就需要链接。

2023-12-22 10:10:01 646

原创 qt安装及简单实用

向导会默认添加一个继承自QMainWindow的类,可以在此修改类的名字和基类。让程序进入Qt的事件循环,也就是窗口一直运行着,等待我们的各种操作,并根据我们在代码中的设定做出响应。.pro是工程文件,是qmake自动生成的用于生产makefile的配置文件。类似于VS中的.sln 和vsproj文件。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。标签(Label)——> QLabel(PyQt5)复选框(CheckBox)——> QCheckBox。.ui文件,借助开发环境中集成的。

2023-12-21 17:26:40 425

原创 光条中心线提取-Steger算法 [OpenCV]

在线结构光视觉传感器中,由线激光器发射出的线结构光,在本质上为一个连续且具有一定厚度的空间光平面,而在目标表面上所形成的具有一定宽度的光条特征,即为该光平面与目标表面相交而成的交线。在该空间光平面的厚度方向上,光强近似服从高斯分布,因而在摄像机采集到的光条图像中,在沿着光条宽度的方向或光条的法线方向上,其灰度也会呈现出类似的高斯分布特点,即光条中心的灰度值大而光条边缘的灰度值小,如图1所示,因而光条中心线的提取任务就是要找到图像中的光条灰度的高斯分布中心。Steger算法原理。

2023-12-20 10:45:59 1462

原创 二叉搜索树--二叉排序树

Pre函数,找前驱节点,如果有左子树,则前驱节点是该子树的最后一个节点last,如果没有左子树,判断该节点对于它的父节点来说是否是右孩子(用于判断父节点是否遍历)。分别表示前驱节点,下一个节点,第一个节点和最后一个节点。删除双分支的时候先找到他的直接后继,将直接后继的数据值放到要删的节点位置,将要删的节点删除。删除单分支的时候,判断时该节点的左孩子还是右孩子,删除该节点后挂到相应的位置。删除叶子,删除单分支,删除双分支,删除单分支的根。判断插入的节点是否存在,存在就不插入,

2023-12-15 17:42:36 393

转载 Google Gemini AI

https://zhuanlan.zhihu.com/p/671988739

2023-12-15 11:27:52 81

原创 HuffMan tree

ASCII 编码是对照ASCII 表进行的编码,每一个字符符号都有对应的编码,其编码长度是固定的。其会对频率较高的字符使用较短的编码,频率低的字符使用较高的编码。给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。n个权值分别设为 w1、w2、…的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。

2023-12-13 11:33:22 344

原创 树与二叉树基础知识

一棵二叉树是节点的一个有限集合该集合或者为空,或者由一个根节点加上两颗分别为左子树和右子树,互不相交的二叉树组成。

2023-12-12 09:14:00 336

原创 redis中缓存雪崩,缓存穿透,缓存击穿等

由于原有缓存失效(或者数据未加载到缓存中),新缓存未到期间(缓存正常从Redis中获取,如下图)所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机,造成系统的崩溃。比如我们设置缓存时采用了相同的过期时间,在某个时间节点,大量的 key 失效,导致大量的请求从缓存中获取不到数据而去请求数据库。解决方法:(1)碰到这种情况,一般并发量不是特别多的时候,可以加锁排队,加锁排队的解决方式分布式环境的并发问题,有可能还要解决分布式锁的问题;

2023-12-09 16:46:54 1331 1

原创 redis持久化机制

Redis 是一个基于内存的系统,它使用,以提供快速读写访问。内存存储的数据是容易丢失的,这就意味着如果Redis一旦奔溃或者重启,所有数据都将丢失。为了解决这个问题,Redis引入了持久化机制,它允许Redis将内存中的数据异步或同步地写入磁盘中,以便在Redis重启时能够从磁盘中恢复数据。。。快照是内存数据的形式,在存储上非常紧凑,而 AOF 日志记录的是内存数据修改的指令记录文本。

2023-12-09 11:55:20 893

原创 redis

Redis是NoSQL数据库。

2023-12-08 17:44:02 1017

原创 SAM+使用SAM应用数据集完成分割

SAM(Segment Anything Model)是由 Meta 的研究人员团队创建和训练的深度学习模型。在 Segment everything 研究论文中,SAM 被称为“基础模型”。基础模型是在大量数据上训练的机器学习模型(通常通过自监督或半监督学习),其目的是在更具体的任务上使用和重新训练。SAM 是一个预训练模型,旨在适应其他任务(特别是通过微调)。

2023-12-06 13:53:47 1113

原创 Ubuntu 安装 CUDA 和 cuDNN 详细步骤

我的Linux系统背景:系统和驱动都已安装。系统是centos 8。或者是用nvidia-smi可以看到显卡驱动和可支持的最高cuda版本,我的是12.2。驱动版本是535.129.03如下截图, 选择自己系统对应的CUDA版本,

2023-12-04 18:23:47 1035

原创 git问题error: remote origin already exists.

/删除关联的origin的远程库。修改origin仓库的url。//在关联要链接的远程仓库。//查看已关联的远程仓库。

2023-12-01 13:29:23 491

原创 hikvision SDK使用学习/实践

【代码】hikvision SDK使用学习以及自己。

2023-12-01 11:51:49 1329

原创 extern关键字

它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时,它只要包含A模块的头文件即可,在编译阶段,模块B虽然找不到该函数或变量,但它不会报错,它会在连接时从模块A生成的目标代码中找到此函数。如果是,在这个宏定义之后的代码会被编译器所识别。extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

2023-12-01 11:28:24 339

原创 c++17std::apply与std::make_from_tuple.

在C++17标准之前,处理元组和可变参数模板是一件相对繁琐的事情。例如,如果我们想要将一个元组的所有元素作为参数传递给一个函数,我们需要手动解包元组,这通常需要使用模板元编程和递归。通过引入std::apply,我们可以轻松地将一个元组的所有元素作为参数传递给一个函数,而无需手动解包元组。这极大地提高了代码的可读性和效率。std::apply,std::make_from_tuple是关于std::tuple(或std::pairstd::array等可以通过std::get。

2023-11-29 10:01:29 366

原创 c++11元组std::tuple

元组,c++11中引入的新的类型,可类比std::pair。tuple是一个固定大小的不同类型值的集合,是泛化的std::pair,但是std::pair只能支持两个元素。理论上, 元组支持0~任意个元素。头文件#include<tuple>

2023-11-25 13:20:26 510

原创 安装opencv中出现的问题

依赖包libjasper-dev出现unable to locate libjasper-dev解决办法。可能会遇到问题sudo: source: command not found,这时可如下2步处理。1.在官网下载source版本(linux)12.保存退出,然后执行如下命令是配置生效。5.创建编译目录(release)并进入。该仓库没有数字签名,增加数字签名,11.配置bash,执行以下命令。前面两个都在报错,更换软件源。3.安装cmake工具。正常安装opencv。6.cmake 配置。

2023-11-23 10:48:43 24

原创 mat 和eigen

OpenCV矩阵结构为:cv::Mat,或者cv::Mat_等,与Eigen的矩阵结构相互转换时主要使用函数:cv::eigen2cv和cv::cv2eigen,需要头文件:#include<opencv2/core/eigen.hpp>EIGEN矩阵矩阵 Eigen::Matrix<float,行,列> // Eigen 中所有向量和矩阵都是Eigen::Matrix,它是一个模板类。它的前三个参数为:数据类型,行,列// 声明一个2*3的float矩阵Eigen::Matrix<floa

2023-11-21 16:02:33 85

原创 opencv基础学习

{2,3,4,6}代表向量的长度。{b, s ,w , i, f, d}表示向量内数据类型。d:double。

2023-11-21 11:40:52 30

原创 libsodium密码库

AEAD相比于 AE,AEAD 在加、解密时还可以选择性地给定一些没有保密性要求的「附加数据」,例如版本号、时间戳、报文的长度和编码方式等。这些附加数据会参与到报文鉴别码的计算中去,但不会被加密,也不会成为密文的一部分。在加密一个报文时,需要一个密钥和一个不重数,加密后将得到密文和一个报文鉴别码。Libsodium 是一个开源、跨平台、跨语言的加密库,提供了一组简单易用的函数,大大简化了加密、散列、签名、鉴别、解密等复杂工作。MAC 报文鉴别码----------AE-----AEAD。

2023-11-17 11:04:19 290

原创 解决linux第一次安装anaconda无法进入base环境的问题

使用conda --version发现conda是安装好的,刚开始是环境配置问题,打开.bashrc文件修改环境配置,在路径那块将自己的annconda对应的文件路径填进去gedit ~/.bashrc进入修改环境变量后还是无法进入base环境,应该先使用下列语句激活环境,以后可以正常使用conda activate和conda deactivate可能的问题:下一次 又恢复原来的样子了,每次都需要重新设置。解决方法:在base环境下执行conda init即可。

2023-11-15 09:56:05 1941

原创 lambda表达式

lambda表达式是c++11一个新的语法糖。lambda源于函数式编程的概念。,一般用于定义匿名函数,使得代码更加灵活简洁。lambda函数本质是仿函数优点:声明式编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或者函数对象。简洁:不需要额外写一个函数或者函数对象。避免代码膨胀和功能分散。lambda表达式类型在c++11中被称为“闭包类型”,特殊的非nunion的类类型。可以认为他是一个带有operator()的类。即仿函数。

2023-11-13 15:28:13 18

原创 Lua基础知识

userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。

2023-11-13 14:35:05 49

原创 计算机视觉

卷积就是两个函数之间的相互关系,然后得出一个新的值,他是在连续空间做积分计算,然后在离散空间内求和的过程。实际上在计算机视觉里面,可以把卷积当做一个抽象的过程,就是把小区域内的信息统计抽象出来。

2023-11-11 11:43:07 45

原创 使用c++ opencv进行数字图像处理学习(一)

在图像处理领域,感兴趣区域(ROI) 是从图像中选择的一个图像区域,这个区域是你的图像分析所关注的重点。其中0代表纯黑色的最暗区域,255表示最亮的纯白色,而中间的数字就是不同亮度的灰色。OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS, 如今也提供对于C#、Ch、Ruby,GO的支持。、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。

2023-11-10 14:00:03 262

原创 负载均衡策略

负载均衡(Load Balance),它在网络现有结构之上可以提供一种廉价、有效、透明的方法来扩展网络设备和服务器的带宽,并可以在一定程度上增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性等。用官网的话说,它充当着网络流中“交通指挥官”的角色,“站在”服务器前处理所有服务器端和客户端之间的请求,从而最大程度地提高响应速率和容量利用率,同时确保任何服务器都没有超负荷工作。如果单个服务器出现故障,负载均衡的方法会将流量重定向到其余的集群服务器,以保证服务的稳定性。

2023-11-07 14:07:05 29

原创 负载均衡常用算法

轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。:优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。由于该算法中每个请求按时间顺序逐一分配到不同的服务器处理,因此适用于服务器性能相近的集群情况,其中每个服务器承载相同的负载。但对于服务器性能不同的集群而言,该算法容易引发资源分配不合理等问题。

2023-11-07 14:06:04 73

原创 c++-20 jthread

类jthread表示。它拥有通常同的行为,还包括jthread在析构时自动再结合,而且能在具体情况下取消/停止。jthread逻辑上保有一个内部的类型私有成员,它维持共享停止状态。jthread的构造函数接受一个 std::stop_token 作为其首参数,jthread将从其内部的传递它。这允许函数在其执行中检查是否已请求停止,而若已请求则返回。可以在无需表示任何线程的状态(在默认构造、被移动、 detach 或 join 后)下创建,创建的线程可以与任何jthread。

2023-11-03 11:38:19 92

原创 protobuf

protobuf是一种轻便高效的一种结构化数据的存储格式,用于结构化数据序列化。用于即时通信,数据存储等领域的语言无关,平台无关,可扩展的序列化结构数据格式。oneof:同时包含多个类型的字段, 和上一层字段属于同一级别,不能重名,不能用repeated修饰,oneof内只能有一个字段被设置。是google开发的一种数据序列化协议(与json,xml类似),可以序列化数据后进行网络通信或者结构化存储。核心包括:定义消息(消息的结构体,以message标识),定义接口(接口路径和参数,以service标识)

2023-10-30 17:56:32 28

原创 八大排序总结

目录1.插入排序2.希尔排序3.选择排序4.堆排序5.冒泡排序冒泡排序优化6.快排7.归并排序8.基数排序总结 思想: 插入排序将整个数列划分为已排序和未排序两个区间,初始情况下,已排序区间只有一个元素,那就是数列的第一个元素,然后重复取未排序区间中的元素逐个插入到已排序区间中(从后向前扫描),直至未排序区间元素数量为0。那么时间复杂度就是O(n^2)。2.希尔排序 思想: 把数组分割成若干个小组,间隔gap大小,然后对每一个小组分别进行插入排序。每一轮减小间隔大小,并且

2023-09-20 19:06:17 64 1

原创 八大排序-快排及优化

核心市分治定基准,设置两个指针一个从左往右找比它小的,一个从右往左找比它大的,两指针位置数值交换,直到两指针相遇,将基准放入相遇位置,该位置前面都比基准小,后面都比基准大。

2023-08-24 12:13:40 64 1

原创 把项目传到github上,以及遇到的问题解决方法

如果使用http格式的url会提醒鉴权失败,原因:虽然配置了ssh代码但是git clone时用的时http,不是ssh所有ssh不能生效。4.将暂存区 的文件提交到本地仓库,并添加提交信息 “commit”6.将本地仓库的内容推送到远程仓库的master分支。注意这里使用远程仓库的ssh格式的url。5.将本地仓库和远程仓库关联起来。1.创建一个新仓库,以name命名。2.将写好的代码cp到新仓库下。3.然后将所有文件添加至暂存区。

2023-08-10 16:57:05 61 1

原创 优先级队列-priority_queue

优先级队列本质是堆,缺省是是大顶堆(less<Type>)(operator<)。队列是从一头入另一头出,优先级队列可以自定义数据优先级,让优先级高的排前面。Type是数据类型,Contains是容器,一般默认是vector(也可以是其他用数组实现的容器)不同于队列的是获取队头元素是top();

2023-07-26 10:08:22 44 1

转载 http协议

HTTP(HyperText Transfer Protocol),是超文本传输协议,是目前互联网上要用最广泛的一种网络协议,所有的 WWW文件都必须遵守该标准。HTTP 通常跑在 TCP/IP 协议栈之上,依靠 IP 协议实现寻址和路由、TCP 协议实现可靠数据传输、DNS 协议实现域名查找、SSL/TLS 协议实现安全通信。

2023-07-25 11:31:47 147

原创 跳跃表以及在redis中的应用

redis,跳表

2023-07-20 15:07:40 113 1

原创 epoll和select的区别

epoll/select

2023-07-13 16:27:19 831 1

原创 rb树-红黑树

rb树

2023-07-12 12:01:32 68 1

原创 enum class/enum

enum和enum class 区别,优缺点

2023-02-08 14:13:37 186

空空如也

空空如也

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

TA关注的人

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