自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 MaskFormer语义分割算法测试

MaskFormer是一套基于transformer结构的语义分割代码。测试用的数据集:ADE20k Dataset该数据集可通过上述链接下载,其中training含有20210张图片,validation含有2000张图片。SceneParsing中是全景分割的标签图片,InstanceSegmentation是实例分割的标签图片。

2025-03-28 18:39:59 854

原创 vscode中使用launch.json进行python代码的调试

在使用vscode调试python工程时,一些python代码含有较多的输入变量,可将代码的输入变量写入到launch.json中,帮助调试。"program"是主函数的文件路径。新建一个launch.json。"args"是输入的参数的值。

2025-03-27 15:32:02 230

原创 c++_用于程序计时

方法二: 调用<chrono>中的函数。方法三: 调用opencv中的计时函数。方法一:调用<time.h>中的函数。

2025-03-26 16:54:26 174

原创 Qt creator配置格式化代码插件clang-format

Qt Creator 本身默认支持代码格式化,具体格式化快捷键为:Ctrl+i。可以选择部分或全部选择后执行 Ctrl+i 操作完成代码格式化。但只限于缩进格式化,不会对大括号位置、小括号前后空格、运算符前后空格等进行格式化操作,显然使用起来并不是那么的舒心。本文介绍了如何使用 Qt Creator 内置的 Beautifier 插件-clang-format工具,实现全面的代码风格格式化。使用Qt6,Qt Creator 14.0的软件版本。

2025-02-06 15:39:30 945

原创 Qt中的UIC、MOC、RCC宏定义说明

在Qt6新建工程的时候,CMakeLists.txt中会默认带有UIC,MOC,RCC的3个宏定义。uic(User Interface Compiler),用户界面编译器,将根据.ui文件生成相应的.h文件,例如根据mainwindow.ui生成ui_mainwindow.h。moc(Meta-Object Compiler),元对象编译器,用于处理QT拓展的C++语法。rcc(Resource Compiler),rcc工具用于在构建过程中将资源嵌入到Qt应用程序中。

2025-02-04 15:09:16 748

原创 windows上的远程桌面连接

若想重新显示顶部的蓝色连接栏,按 Ctrl+Alt+Home进行重新显示。右键编辑.rdp文件,在末尾添加selectedmonitors:s:1。设置-系统-远程桌面,勾选"启用远程桌面"的选项。点击连接,即可进入windows自带的远程桌面。win+r,启用命令行,输入mstsc。输入被访问计算机的ip地址和计算机名。即可指定显示1号分屏。

2025-01-21 09:56:41 269

原创 Qt中SQLite数据库的使用

这个方法的作用是设置预处理语句中的占位符的值,从而将真实的数据插入到SQL语句中。下载之后,解压到本地,打开DB Browser for SQLite.exe,然后点击打开数据库,选在刚才保存到本地的db文件,即可查看里面的内容。sqlite的数据会写入到db的文件中,若想可视化查看数据内容,可借助第三方工具,本文中使用SQLite Browser的工具。也可以在Qt Creator中添加该第三方的工具,更加方便的查看该数据库,工具-外部-配置,

2024-12-26 11:40:55 1269

原创 c++_std::bitset位运算

int main()// 默认初始化:全0 -> 00000000// 用整数初始化:64 = 01000000// 用字符串初始化:11101010return 0;

2024-12-25 16:40:04 360

原创 opencv存图速度测试

在机械硬盘上,磁盘的IO一般为100M/s左右,若频繁存bmp的大图,磁盘的IO不够,磁盘写入的速度太慢,会影响程序的运行。结果显示使用opencv存bmp的速度最快,存一张大图的时间大概为22ms左右。以下测试的图片,均为5488x3672分辨率的三通道彩色图。当存小图的时候,使用halcon存bmp的速度最快。

2024-12-25 11:21:23 559

原创 windows下Redis的使用

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

2024-12-24 10:06:31 998

原创 nvidia gpu架构代号

使用NVIDIA GPU时,难免会用到nvcc来编译自己写的cuda代码,nvcc要求我们给一个-arch选项或者-gencode选项,gencode也可以从ptx编译代码。但是NVIDIA的架构代号很多,有GA-{num}类型,也有sm_{num}类型,有时候给人整不会了都。从8.0上编译出的二进制文件也可以在8.6上运行,但还是推荐在fp32类型上使用8.6的编译选项。,而没有使用-arch,CPU的codegen会发生在JIT阶段,就是在runtime编译device code。

2024-11-15 15:20:14 956

原创 cuda编程实现向量加法

其中grid中的block有x/y/z三个维度,总数有最大值,每个维度上有各自的最大值,需要查阅当前的cuda规范。一般来说,block中的线程数最大为1024个。上面流程中最重要的一个过程是调用CUDA的核函数来执行并行计算,kernel是CUDA中一个重要的概念,kernel是在device上线程中并行执行的函数,核函数用。来指定kernel要执行的线程数量,在CUDA中,每一个线程都要执行核函数,并且每个线程会分配一个唯一的线程号thread ID,这个ID值可以通过核函数的内置变量。

2024-11-15 11:20:03 755

原创 c++_std::async异步调用

std::async会返回一个std::future对象,当需要这个值的时候,需要调用这个对象的get()成员函数,并且会阻塞线程直到期望值状态变为就绪。从线程的id号,可发现,函数是在单独的线程中运行的。调用data.get()会阻塞main函数中的执行过程,等待std::async的异步函数执行完毕之后,再接着走主函数。2.std::launch::defered,函数调用被延迟到get()或者wait()函数调用的时候才执行。1.std::launch::async,函数必须在其独立的线程上运行。

2024-11-11 15:20:57 209

原创 C++17_filesystem的使用

【代码】C++17_filesystem的使用。

2024-11-08 18:42:43 198

原创 opencv_相关的问题

Debug模型下运行,在命令行窗口会有一些error相关的log信息。通过调整log的等级,屏蔽掉INFO的log信息。

2024-11-08 17:29:29 390

原创 C++_判断文件是否存在_access函数

pathname 为文件路径或目录路径 mode 为访问权限(在不同系统中可能用不能的宏定义重新定义):如果文件具有指定的访问权限,则函数返回0;如果文件不存在或者不能访问指定的权限,则返回-1.Linux下,该函数为access,位于头文件<unistd.h>中。windows下,该函数位_access,位于头文件<io.h>中。

2024-11-08 17:18:56 486

原创 C++命名规范

通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域、类型等。前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法。(也叫大驼峰命名),与驼峰命名法类似,二者的区别在于:驼峰命名法是首字母小写,而帕斯卡命名法是首字母大写,,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。示例:DisplayInfo();

2024-11-08 16:51:05 219

原创 python_多进程处理数据

在深度学习处理数据过程中,多进程可提高数据的处理效率。

2024-09-05 17:18:52 357

原创 Qt_QString和HTuple之间的转换

【代码】Qt_QString和HTuple之间的转换。

2024-09-03 15:58:04 243 1

原创 Qt6_软件安装

若后续需要添加或者删除某些组件,可通过MaintenanceTool.exe来改变,调用国内的镜像源安装会快一些。下载winsdksetup.exe的安装包,选择“DebUGGing Tools For Windows”修改Qt Creator的快捷键,默认的快捷键中,转到定义是F2。安装visual studio 2022,支持msvc工具链。Qt Creator默认是没有调试器的,需要用户额外安装。将上述两项改为F12,可使得和vs中的快捷键同步。配置好该debugger之后,即可开始调试代码。

2024-09-03 14:31:13 639

原创 python_timm手动下载模型

使用timm模块中,create_model初始化模型,会从外网下载该权重,通常会遇到下载失败的错误。

2024-05-09 17:56:39 895 1

原创 c#_一些代码片段

【代码】c#_一些代码片段。

2024-01-17 09:00:09 510

原创 halcon和c#之间的数据转换

【代码】halcon和c#之间的数据转换。

2023-09-20 16:37:44 791

原创 c#_调用c++的动态库并封装成为c#的库文件

该代码中,先import了c++的动态库,然后声明了已有的函数接口,接着在该c#的AddAlgorithmCls的类中,基于c++中已有的函数接口,声明了c#的新的函数接口。在windows上的开发, 一般软件都是用的c#,对于算法生成的c++的动态库dll,在给到软件之前,最好自己在c#中写一个测试程序,验证一下该c++的动态库dll的有效性,同时可再将该算法封装成为c#的接口,可直接给到软件调用。即可生成AddAlgorithmCsharp.dll的c#的函数接口。

2023-09-18 21:21:43 769

原创 c++_创建动态库dll并调用

这是一个简单的程序,会生成一个exe,通过该步骤将代码跑通,然后点击该工程,右键->属性->配置属性->常规->配置类型->动态库库(.dll),接着清理,重新生成,默认会在解决方案的根目录/x64/Debug下生成AddAlgorithm.dll和AddAlgorithm.lib。在该解决方案中,再新建一个名称为AddDemo的空项目的工程,新建main.cpp,复制上面main.cpp里面的内容。以下会用c++创建一个加减乘除的动态库dll,并在另一个工程中,用main函数来调用该动态库。

2023-09-18 20:55:43 719

原创 halcon_基本语法

【代码】halcon_基本语法。

2023-09-17 15:14:01 905

原创 halcon_tuple的操作

变量长度:如果长度为1,则可以作为正常变量使用,第一个索引值为0,最大的索引值为变量长度减1。赋值符号:一个冒号加一个等号 “ := ”。Halcon中的数组,也就是tuple,与C语言类似。变量类型:int,double,string等类型。

2023-09-17 14:47:50 6074

原创 halcon_一些代码片段

【代码】halcon_一些代码片段。

2023-09-17 14:40:19 118

原创 opencv_特征匹配与图像拼接

其中得到了重叠的mask,进行图像融合的过程中,有两个函数,第一个是merge_image_by_mask1,该函数先计算两张图片对应的mask的权重,方便进行可视化,第二个是merge_image_by_mask2是根据重叠的lap_mask,取两张图片对应坐标的像素,直接计算融合之后的像素值。opencv中,常用的特征点检测算法有:SURF算法,SIFT算法,ORB算法,FAST算法。

2023-09-16 18:08:23 211

原创 opencv_contrib的编译与运行(windows)

在用到opencv中的特征点检测与图像匹配的时候,发现基础的opencv库中没有这个功能,需要下载opencv_contrib的库并进行编译。

2023-09-08 15:36:17 281

原创 windows上点云库PCL-1.13.0+VS2019的配置

配置好PCL的环境之后,新建一个main.cpp,测试是否能生成,显示,并保存点云。该代码定义了一个正方体的8个顶点的坐标,然后生成了该点云,可视化的效果如下所示。在PCL 1.13.0的安装路径中,找到OpenNI2的安装包,并开始安装。windows系统上,VS2019+PCL-1.13.0。将其中的pdb文件复制到PCL安装目录的bin目录下。在环境变量的Path中,添加以上8个路径。安装完后,环境变量会自动生成以下的变量。

2023-08-16 19:58:33 550

原创 opencv_访问cv::Mat的中的元素

主要采用两种方式来访问Mat中的元素,第一种是基于img.at(i, j)的方式,访问Mat中的元素,第二种是将img.data赋值给uchar* data的指针,用指针去遍历每个像素值。在使用imshow显示图片的时候,调试窗口会显示一堆log,可加上以下代码,去掉该日志。遍历该图片,使该图片眼睛附近的像素,变为白色。

2023-08-13 23:32:13 298

原创 c++_结构体struct的使用

在该例子中,config是struct ConfigModel声明的一个结构体变量,CONFIG是struct ConfigModel2的同义字,可以使用CONFIG来定义变量。在C语言编程中是不允许在定义结构体变量时省略struct关键字,当然C++中用不用的结果都是一样的,所以有时候为了平台的兼容性以及代码更好的可读性,使用typedef关键字。struct 在c中是结构体体,在c++ 中升级为class 了,他拥有类的全部特征。,结构体类型名就相当于"

2023-08-11 09:41:58 162

原创 halcon转c++代码在VS2019中调用

注意opencv的cv::mat和halcon的HObject的转换,以及c++中的int, double, string和halcon中的HTuple的类型的转换。将halcon写好的代码,转成c++代码,配置好visual studio环境后,在vs2019中编译运行。将该cpp中的函数声明,以及函数实现,复制到vs2019的工程的代码中,然后配置好环境,即可完成调用。在halcon的当前页面中,打开该函数,点击选项卡中的"文件"--”导出程序"计算中间区域的长度和宽度。在halcon中写一个函数,

2023-08-09 20:02:20 2123

原创 git常用命令

当前分支与远程分支并未建立联系,需要执行一下 git branch --set-upstream-to=origin/ 操作。git pull 提示 git branch --set-upstream-to=origin xxx。该命令让当前分支和远程分支建立联系之后,就可以进行git pull,git push的操作了。在使用https git拉取代码时,每次git pull的时候都会让输入用户名和密码。

2023-08-03 20:34:18 200

原创 c++_string中的中文字符

上述代码,可以发现,中文字符占有两个char,每个char字符的8位二进制的首位都为1。范围是在0到127,二进制为(0000 0000 ~ 0111 1111)2、中文的 ASCII 码,其最高位为 1,占两个字节。1、英文的 ASCII 码,其最高位为 0,占一个字节。

2023-08-03 11:28:48 1749

原创 c++_获取程序运行的目录

【代码】c++_获取程序运行的目录。

2023-08-03 10:53:21 2154

原创 c++_string和wstring的相互转换

string是常用类型,可以看作char[]。而wstring,使用的是wchar_t类型,这是宽字符,用于满足非ASCII字符的要求,例如Unicode编码,中文,日文,韩文什么的。wstring是宽字符,占用2个字节的大小,针对UNICODE编码格式,用于对中文汉字的定义和赋值。也就是说,宽字符,每表示一个字符其实是占了16bit,即2个char的大小。1、wstring:wstring是宽字符,占用2个字节的大小,即16bit。2、string:string是窄字符,占用1个字节的大小,即8bit。

2023-08-02 23:51:12 6173 2

原创 c++_日志库easylogging++

在算法和软件的对接过程中,需要添加日志,记录算法的运行信息,在遇到崩溃的错误时候,方便定位问题。easylogging++是一款非常轻量级的日志库,使用起来,只需要添加一个头文件,无需任何第三方库,支持文件配置,以及自定义日志格式。必须使用且只能使用一次,否则就会产生编译错误,该初始化宏最好的位置,位于程序入口函数所在文件的顶部,紧跟在包含头文件的代码后面。会在该程序的运行目录下,新建log的文件夹,里面有刚记录的log文件。即可在程序运行的目录下,生成名为myeasylog.log的文件,

2023-07-29 14:52:51 445

原创 VOC数据集说明

在语义分割的标签文件,存放在SegmentationClass文件夹下,每张jpg的图片会对应一张单通道的png的mask图片。结果图如上所示,可以看到目标的边缘全部是白色,也就是png图片中255的标签,所对应的区域,在训练的过程中,该区域会被屏蔽掉。其中包含255的类别,读入一张图片,将png中不同的label填充成不同的颜色,进行可视化。包括背景,一共有21个类别,

2023-07-28 18:48:30 112

行人重识别数据集(真实场景)

从真实场景(超市,街道,学校)中采集的行人重识别数据

2022-06-14

空空如也

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

TA关注的人

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