
笔记
文章平均质量分 57
颢师傅
这个作者很懒,什么都没留下…
展开
-
【FPGA】优化设计指南(一):设计原则
面积和速度是对立统一的。因此,在时钟网络中,MMCM 经常用于生成不同时钟域内的时钟信号,确保这些信号之间具有明确的相位关系,以保证电路的正确功能和稳定性。毛刺通常是短暂的、不稳定的信号脉冲,可能会对电路的正常功能造成影响,特别是在时序要求严格的系统中,如数字电路中的时钟信号处理。在同步设计中,时钟信号的控制可以帮助过滤掉这些毛刺,因为触发器只在时钟的有效沿触发,而不会受到毛刺的影响。在FPGA中,"乒乓操作"通常指的是在时序逻辑中的一种特定操作,用于在两个时钟周期之间交替执行某个操作或改变某个状态。原创 2024-04-22 01:20:10 · 1396 阅读 · 1 评论 -
【DeepStream】基于英伟达DeepStream框架进行算法开发(二):推理基础流程
当需要将一个元素连接到另一个元素时,可以使用 get_request_pad() 方法从目标元素中请求一个 pad,然后将这个 pad 与其他元素的 pad 进行连接,实现元素之间的数据传输。这行代码将 caps 元素的输出 pad 和之前获取的 streammux 元素的请求 pad 进行连接,即将属性设置元素的输出与合流器元素的输入连接起来,使视频流能够正确传递到合流器中的指定输入通道。这行代码从 caps 元素的 “src” pad 中获取一个静态 pad,并将其存储在 srcpad 变量中。原创 2024-02-27 14:20:10 · 1454 阅读 · 0 评论 -
【vscode】vscode在离线环境下配置远程服务器客户端
当需要在离线环境下配置远程服务器客户端时,Visual Studio Code (VS Code) 是一个优秀的工具选择。通过配置远程开发插件,可以在本地使用 VS Code 编辑远程服务器上的文件,提高开发效率和灵活性。在本博客中,我们将深入介绍如何在离线环境下配置 VS Code 远程开发环境,帮助开发者更好地利用这一功能进行远程开发工作。原创 2024-02-27 13:45:22 · 1451 阅读 · 0 评论 -
【redis】redis系统实现发布订阅的标准模板
Redis发布订阅功能是Redis的一种消息传递模式,允许多个客户端之间通过消息通道进行实时的消息传递。在发布订阅模式下,消息的发送者被称为发布者(publisher),而接收消息的客户端被称为订阅者(subscriber)。在Redis中,发布者可以将消息发布到一个或多个频道(channel),而订阅者可以选择订阅感兴趣的频道以接收相关的消息。同时,一个订阅者也可以订阅多个频道。当有消息发布到已被订阅的频道时,所有订阅该频道的客户端都能够接收并处理这些消息。原创 2023-12-19 20:30:00 · 572 阅读 · 0 评论 -
【架构】探索计算机处理器的世界:ARM和x86架构解析及指令集
通过本文的介绍,我们了解了ARM和x86这两个重要的处理器架构。它们在不同的领域发挥着重要的作用,驱动着计算机技术的不断进步。在选择合适的处理器架构时,我们需要考虑应用需求、性能要求和生态系统支持等因素。祝愿读者在处理器的世界里,找到最适合自己的架构!原创 2023-08-24 22:00:00 · 3305 阅读 · 0 评论 -
【网络】windows电脑配置host
本地开发和测试:在开发过程中,可以使用hosts文件将开发环境中的域名映射到本地的IP地址,以便在本地进行开发和测试。屏蔽广告和恶意网站:通过配置hosts文件,可以将一些已知的广告、恶意或不受欢迎的网站映射到一个无效的IP地址,从而屏蔽它们的访问。DNS故障或绕过:在某些情况下,可能需要绕过DNS解析,直接将域名映射到指定的IP地址,以解决DNS故障或访问特定的服务器。需要注意的是,配置hosts文件需要谨慎操作,确保您知道自己在做什么,并且备份原始的hosts文件以防万一。原创 2023-08-02 16:37:55 · 16025 阅读 · 0 评论 -
【数据拆解】使用1个int表示5个不同的int,每个int的范围在0至255之间
这种拆分的原理是利用位运算和移位操作。一个int类型变量在内存中占用4个字节,即32位,每个字节占用8位。因此,可以通过位运算和移位操作,将一个int变量拆分成4个8位的字节,或者拆分成5个8位的字节。具体来说,可以使用位运算符"&“和”|“对数字进行按位操作,将数字拆分成8位一组,通过右移位操作”>>“,每次将数字的高8位移动到最低位,然后再使用”&"运算符来取出这个8位数字。原创 2023-06-13 14:09:55 · 253 阅读 · 0 评论 -
【linux】编写.sh文件使得文件夹下所有文件具备当前用户的所有权,及用户组,并赋文件权限
在Linux系统中,每个用户都有一个唯一的用户名和一个用户ID(UID),用于标识用户。用户可以拥有自己的文件和目录,并且可以对这些文件和目录进行读、写和执行等操作。每个文件和目录都有一个所有者和一个所有组。所有者是创建该文件或目录的用户,所有组是一个用户组,该用户组中的所有用户都可以访问该文件或目录。在Linux系统中,可以使用 chown 命令来修改文件和目录的所有者和所有组,使用 chmod 命令来修改文件和目录的访问权限。这些命令可以用于管理文件和目录的访问权限,保护文件和目录的安全性。原创 2023-06-06 13:26:55 · 1391 阅读 · 0 评论 -
【目录结构】将源文件按g++及dlcc编译器分开编译
build.sh执行内部库的编译的脚本,完成自定义cuda动态库的编译工作。原创 2023-05-05 15:19:40 · 652 阅读 · 1 评论 -
【MQTT协议】使用Mosquitto实现mqtt协议(二):编写视频帧的发布/订阅服务
MQTT协议中的QoS(Quality of Service)表示消息传输的服务质量等级,它是MQTT协议中非常重要的一个概念。MQTT协议中定义了三个不同等级的QoS:QoS 0:最多一次(At most once)传输。消息发布者只发送一次消息,不进行确认,也不关心消息是否到达订阅者。这种QoS等级的消息传输效率最高,但可靠性最低。QoS 1:最少一次(At least once)传输。消息发布者会发送消息,并等待确认。如果消息没有被确认,会再次发送,直到收到确认为止。原创 2023-04-14 15:32:32 · 1370 阅读 · 0 评论 -
【pytorch】深度学习模型调参策略(三):超参数搜索实验设计与曲线分析
尽可能多地包含麻烦超参数并允许每个麻烦超参数在尽可能广泛的范围内变化,可以增加我们的信心,即在每个科学超参数配置的搜索空间中存在“好”的麻烦超参数值。在更复杂的情况下,如果我们想比较大量科学超参数的值,而独立创建这么多的研究是不切实际的,我们可以将科学参数包含在与麻烦超参数相同的搜索空间中,并使用搜索算法在单个研究中采样科学和麻烦超参数的值。如果所有试验在某个阈值以上的学习率下都是不可行的,并且表现最佳的试验的学习率处于该区域的边缘,则模型可能存在稳定性问题,阻止它访问更高的学习率。原创 2023-03-27 10:53:49 · 1367 阅读 · 0 评论 -
【pyqt】win10下使用pycharm安装并配置pyqt环境,并用其进行界面绘制
PyQt是一个基于Python语言的开源图形用户界面(GUI)框架,它是Qt跨平台应用程序框架的Python绑定,可以用于创建各种不同类型的应用程序。PyQt提供了丰富的类库和工具,可以方便地创建GUI应用程序,包括窗口、对话框、按钮、菜单、工具栏、列表框、树状列表等控件。PyQt具有以下特点:1.跨平台:PyQt程序可以在多个平台上运行,包括Windows、macOS、Linux等。2.易于学习:PyQt使用Python语言,语法简单易懂,易于学习和使用。原创 2023-03-08 10:15:49 · 748 阅读 · 0 评论 -
【python】c++头文件信息结构化打印
robotpy-cppheaderparser是一个基于CppHeaderParser的Python库,专门用于解析C++头文件。它提供了一些额外的功能,使其更易于使用,并且对于使用RobotPy的机器人程序员来说非常有用。以下是robotpy-cppheaderparser库的一些功能:解析C++头文件:robotpy-cppheaderparser可以解析C++头文件,并将其转换为Python对象,以便于使用。它支持解析类、成员变量、成员函数、枚举类型和其他内容。原创 2023-03-06 19:11:55 · 1055 阅读 · 0 评论 -
【centos】linux一行代码删除占用指定端口的程序
AWK是一种强大的文本处理命令,它能够从文本文件或者标准输入中读取数据,并根据指定的规则对数据进行处理,然后将处理结果输出到标准输出或者文件中。它拥有强大的表达能力,可以轻松实现复杂的文本处理。=1 {print $2}’:意思是使用awk命令,只输出第二列,但是不输出第一行(NR!(3)xargs kill -9:这个命令用来将上一条命令提取出来的PID作为参数,使用kill -9命令杀死这些进程。=1 {print $2}’:这个命令用来提取上一条命令输出的第二列,这一列是进程的PID;原创 2023-02-01 10:59:09 · 440 阅读 · 0 评论 -
【Opencv】计算机视觉中opencv的常见操作
【代码】【Opencv】计算机视觉中opencv的常见操作。原创 2022-11-21 13:24:24 · 835 阅读 · 0 评论 -
【QT】用户自定义事件,继承QEvent,发送给任意QObject的子类
用户自定义事件,可方便得传递给所有QObject的子控件进行处理。原创 2022-08-16 17:14:40 · 464 阅读 · 0 评论 -
【数据库】索引
数据的存储按聚簇索引顺序来,只能有一个。常常对列进行查询操作,可创建索引。在对表中的数据进行增删改时需要耗费较多的时间,因为索引也要动态地维护。在使用分组和排序子句进行数据检索时,可以减少查询中分组和排序的时间。创建索引和维护索引要耗费时间,而且时间随着数据量的增加而增大。索引需要占用物理空间,如果要建立聚簇索引,所需要的空间会更大。经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度。通过创建唯一性索引,可以保持数据库表中每一行数据的唯一性。通过创建索引,可以再查询的过程中,提高系统的性能。...原创 2022-07-17 21:55:47 · 204 阅读 · 0 评论 -
【概率论】条件概率、贝叶斯公式、相关系数、中心极限定理、参数估计、假设检验
条件概率:可以以P(AB)与P(A)之比作为条件概率P(B|A)的一般性定义.解释:已知事件A发生了,有了这一信息后,即知试验所有可能结果所构成的集合就是A,在这基础上观察满足事件B的情况,为条件的概率。独立事件:设A,B为试验E的两个事件,如果满足等式P(AB)=P(A)P(B),则称事件A,B相互独立,简称A,B独立。全概率公式:是概率论中一个非常重要的公式.通常我们会遇到一些较为复杂的随机事件的概率计算问题,这时,如果将它分解成一些较容易计算的情况分别进行考虑,可以化繁为简。其意义是,在Ai,i原创 2022-06-26 01:38:02 · 4079 阅读 · 0 评论 -
【docker】win10系统下docker容器安装及使用(二):docker通过commit及dockerfile进行创建
base镜像有两层含义:(1)不依赖其他镜像,从scratch构建;(2)其他镜像可以以之为基础进行扩展。能称作base镜像的通常都是各种Linux发行版的Docker镜像,比如Ubuntu、Debian、CentOS等。对于base镜像来说,底层直接用Host的kernel,自己只需要提供rootfs就行了。不同Linux发行版的区别主要就是rootfs。比如Ubuntu 14.04使用upstart管理服务,apt管理软件包;而CentOS 7使用systemd和yum。这些都是用户空间上的区别,Li原创 2022-06-12 22:30:00 · 1306 阅读 · 0 评论 -
【docker】win10系统下docker容器安装及使用(一):docker的安装及简介
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无须任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行(1)下载安装包并安装:下载windows版本docker下载win10运行所需的wsl_update_x64.msi先行安装docker,再安装wsl_update_x64.msi,完成后运行即可。注:Windows Subsystem for Linux(简称WSL)是一个在Windows 10原创 2022-06-11 20:56:22 · 3853 阅读 · 0 评论 -
【linux】https://www.webminal.org/命令大全(二)
1.登陆在线linux网址:https://www.webminal.org/2.登陆,输入用户名及密码Log in :Bigder666/aaa1113.登陆Terminal,再次输入Bigder666后回车,再次输入密码aaa111进行登陆:用例:dirname dir2/dir3/dir4/hi.txt 提取文件夹的路径basename dir2/dir3/dir4/hi.txt 提取最后的文件名chmod -v 666 file1.txt 将该文件变成 可读写模式chmod a+rw f原创 2022-06-10 12:36:24 · 3416 阅读 · 0 评论 -
【linux】https://www.webminal.org/命令大全(一)
1.登陆在线linux网址:https://www.webminal.org/2.登陆,输入用户名及密码Log in :Bigder666/aaa1113.登陆Terminal,再次输入Bigder666后回车,再次输入密码aaa111进行登陆:用例:pwd:给出当前所在的目录。mkdir -v dir1 一次性创建一个文件夹。mkdir -vp dir2/dir3/dir4 一口气创建多级目录。浏览指定目录下的文件:ls -R 浏览当前的目录文件,直至最底层的一层目录。cd 任何时候输入cd,原创 2022-06-09 20:42:27 · 2002 阅读 · 0 评论 -
【VS】使用C++包管理工具Vcpkg安装gflags
以安装gflags为例介绍vcpkg的使用:先安装VS包管理器vcpkg:vcpkg如果不指定安装的架构,vcpkg默认把开源库编译成x86的Windows版本的库。安装gflags库:运行D:\vcpkg-master\bootstrap-vcpkg.bat、在安装目录下调出cmd:使用命令vcpkg install gflags:x64-windows如果包下载太慢,可自己下载后复制进下载目录;安装好后,使用:集成到全局命令,自动在全局使用安装好的第三方库:.\vcpkg integrat原创 2022-06-06 00:20:29 · 1062 阅读 · 0 评论 -
【C++】VS建立完整的项目结构
1.新建解决方案文件夹:D:\c++_openvino\src2.新建空的项目,在src下,其中包含一个yolov5的解决方案:产生了项目配置文件,及解决方案文件:.vcxproj 为项目属性文件,是我们必须添加到版本控制中的,vcxproj.filters文件是过滤信息文件,解决方案中的筛选器文件就保存在此文件中, 故一般我也将该文件添加到版本控制中,vcxproj.user是本地化用户配置,允许多个用户使用自己喜好的方式配置这个项目(例如打开项目时候窗体位置等与项目内容无关的配置),原创 2022-05-25 23:54:22 · 2816 阅读 · 0 评论 -
C++语法糖全记录 截止5月31日
1.预处理指令注释:#if 1cout << "Hello world\n";//输出指令#if 0cout << "I am a C++ programmer\n";#endifcout << "Test the /* \n";#endif 2.using在C++11中的使用:代替了typedef:using intvec = std::vector;原创 2022-05-13 23:38:45 · 570 阅读 · 0 评论 -
【QT】控件屏蔽鼠标滚轮事件,以QComboBox及QDateTimeEdit为例
在事件注册处://进制该页面上的滚轮事件,防止误触:auto qComboBoxGroup= this->findChildren<QComboBox*>();for(auto each:qComboBoxGroup){ each->installEventFilter(this);}auto qDateTimeEditGroup= this->findChildren<QDateTimeEdit*>();for(auto each:qDateT原创 2022-05-09 16:20:56 · 3702 阅读 · 0 评论 -
【pytorch】将训练好的模型部署至生产环境:onnx及onnxruntime使用
Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。各类框架中的模型,通过ONNX进行转化见下图所示:导出函数及参数介绍:torch.onnx.export(model, args, f, export_params=True, verbose=False, training=False)模型(torch.nn.Module) - 要导出的模型。args(参数元组) - 模型的输入,例如,这-原创 2022-05-02 23:57:26 · 2568 阅读 · 0 评论 -
python函数使用装饰器
def wrapper(f): # 装饰器函数,f是被装饰的函数 def inner(*args, **kwargs): '''在被装饰函数之前要做的事''' print(args) ret = f(*args, **kwargs) # 被装饰的函数 print(kwargs) '''在被装饰函数之后要做的事''' return ret return innerdef fun(a,b,c,k原创 2022-05-01 16:33:18 · 778 阅读 · 0 评论 -
【pytorch】实现VGGNet 对照网络结构图手动编写
VGGNet最常见的VGG16,其特点是,除最后一层,每经过一个池化层,其特征图尺寸减半,通道加深一倍。其结构图为:pytorch的代码为:# This is a sample Python script.import os.pathfrom typing import Iteratorimport numpy as npimport torchimport cv2from PIL import Imagefrom torch.utils.data import Dataset,Data原创 2022-04-04 15:04:20 · 1305 阅读 · 0 评论 -
QT取消部分控件自带右键菜单
QList<QLineEdit*> lineEdits = targetWidget->findChildren<QLineEdit*>();for(int i = 0; i < lineEdits.size(); i++){QLineEdit* target = lineEdits.at(i);target->setContextMenuPolicy(Qt::NoContextMenu);}QList<QDateTimeEdit*> dat原创 2022-03-15 23:27:44 · 1873 阅读 · 0 评论 -
数据库性能优化步骤
把一个sql语句从120秒优化到0.002秒,把点击登录按钮跳转到首页面的时间从35秒优化到5秒内。1、问题分析:1.1、打开系统登陆页面,右击->检出->Network 。然后点击登录按钮等登陆完成并跳转到首页面后(大概耗时35秒),查看Network 页面,发现有2个请求特别慢一个耗时10秒,一个耗时20秒。初步分析是系统内部逻辑慢,或者数据库查询慢,又因为电脑重启,系统就会变快,所以优先排查数据库2、数据库排查2.1、查看慢查询相关参数打开数据库管理工具->进入查询页面原创 2021-12-10 09:06:14 · 489 阅读 · 0 评论 -
wirehark使用
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。一般情况下,像A这类多IP的服务器是这样配路由的:假如自身有一个IP和对方在同一子网,就从这个IP直接发包给对方。假如没有一个IP和对方同子网,就走默认网原创 2021-12-06 17:46:44 · 302 阅读 · 0 评论 -
模拟鼠标点击
void MainWindow::clicked(){// QMouseEvent *mEvnPress;// QMouseEvent *mEvnRelease;// mEvnPress = new QMouseEvent(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);// QApplication::sendEvent(QWidget::focusWidget(原创 2021-11-20 00:00:56 · 229 阅读 · 0 评论 -
点击保存按钮后,只能点击一次
0.点击button后去使能,1.在slot请求返回处,加button使能。2.点击button后,触发单次定时器,使其再度使能。QTimer::singleShot(3000, ={ui->pushButton_Save->setEnabled(true);});原创 2021-11-19 15:44:31 · 842 阅读 · 0 评论 -
toolbutton属性设置
QToolButton {padding-top:10px;border: none;font: 26px “微软雅黑” ;color: rgb(255, 255, 255);background-color: rgb(69, 185, 119);}原创 2021-11-19 10:33:17 · 342 阅读 · 0 评论 -
qt检测读卡器模拟键盘输入
bool GiveBackCard2::eventFilter(QObject *obj, QEvent *ev){if (ev->type() == QEvent::KeyPress){QKeyEvent event = static_cast<QKeyEvent>(ev);int iKey = event->key();if(iKey == Qt::Key_Return || iKey == Qt::Key_Enter) //回车发送存储信息{if(!_outer原创 2021-11-18 20:56:25 · 849 阅读 · 0 评论 -
qt自绘带气泡按钮
#include #include class QTipButton : public QPushButton{public:QTipButton(QWidget *parent);virtual ~QTipButton(void);virtual void paintEvent(QPaintEvent * event);void setButtonNum(int buttonNum);private:int _buttonNum=0;};#include “qtipbutton原创 2021-11-18 17:55:14 · 628 阅读 · 0 评论 -
qt过控件命名,批量修改某类控件样式的方法
原创 2021-11-18 09:56:27 · 850 阅读 · 0 评论 -
2021-11-11标准线程库
谁调用了join()函数?d2这个线程对象调用了join()函数,因此必须等待d2的下载任务结束了,d2.join()函数才能得到返回。d2在哪个线程环境下调用了join()函数?d2是在主线程的环境下调用了join()函数,因此主线程要等待d2的线程工作做完,否则主线程将一直处于block状态;这里不要搞混的是d2真正做的任务(下载)是在另一个线程做的,但是d2调用join()函数的动作是在主线程环境下做的。detach: Detach 线程。 将当前线程对象所代表的执行实例与该线程对象分离,使得线程原创 2021-11-11 19:10:10 · 452 阅读 · 0 评论 -
关于信号连接的异步性
if((rect.height+rect.y)<=frame.size().height||(rect.width+rect.x)<=frame.size().width) { QImage faceImageToSaved=Mat2QImage(dst); //faceImageToSaved.save("mypic.png"); emit sendPhoto(faceImageToSaved,_boolTakeForFellow); waitKey(50); //延时..原创 2021-11-10 16:42:21 · 664 阅读 · 0 评论