自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GDAL——地理空间数据抽象库在VS2022下的编译

上图是GDAL在github上的首页截图,GDAL库本身是没法运行的(一开始想运行它看看,但后知后觉一个库单独怎么能运行呢哈哈哈哈哈哈)。编译成功后,会生成几个文件夹,里面有一些文件,把这些文件配置到合适的位置后,新建一个C++项目,写好GDAL的头文件后就可以使用这个库了!关于GDAL库编译的一篇集成帖,按照他的逻辑重新顺了一遍后,最终编译成功了,所以最后一步编译GDAL的教程大家看他的帖子就好。,按照帖子中的步骤进行就好。于我而言,按照GIS子枫大佬的帖子编译最终的GDAL库时,出现了如下。

2024-08-02 09:47:20 360

原创 LeetCode算法——滑动窗口&矩阵篇

因为数字中包含9,如果设为 row[9][9] 会提醒溢出,[9]的下标最多到8,无法存储数字9。来确定当前数字在 y 轴上的哪一个区域,选定 y轴 上的0、1、2区域后,由于 区域0 后面还有2个区域,同理1、2后面也都各有2个区域,所以使用。建立一个哈希表,将不重复的元素加入表中,继续向后遍历,一旦出现重复元素,删掉哈希表中最左侧的元素,继续移动窗口直至遍历完字符串。建立3个二维数组 row[9][10]、col[9][10]、box[9][10] 分别对应。这题的解法很巧妙,大家可以去看。

2024-07-24 16:20:01 1049

原创 实时瞳孔分割算法-RITnet论文复现

从 Github 上下载下来的项目文件中包含2个对项目所需环境的描述文件:requirements.txt、environment.yml,前者只是记录了项目所用的包的名字,并没有各个包的具体版本信息;安装好 CUDA 后,不要使用 pip install 指令直接从 Pytorch 官网下载 GPU 版本的 Pytorch,我下了超多次,结果下下来的都是 CPU 版本的,参考这个。结束了,一切都结束了!拷贝进代码项目中(不拷贝也行,重定义一下路径就好了),文件摆放格式什么的都不用改,妥妥的保姆级。

2024-06-03 21:01:42 1029 2

原创 Web Server项目实战5-线程同步机制类封装及线程池实现

线程具有许多进程所具有的特征,故又称轻量级进程。进程是操作系统分配资源的基本单位,而线程是处理器任务调度和执行的基本单位。

2024-05-21 20:07:02 275

原创 Web Server项目实战4-服务器编程基本框架和2种高效的事件处理模式

虽然服务器程序种类繁多,但其基本框架都一样,不同之处在于逻辑处理I/O 处理单元是服务器管理客户连接的模块。它通常要完成以下工作:等待并接受新的客户连接,接收客户数据,将服务器响应数据返回给客户端。但是数据的收发不一定在 I/O 处理单元中执行,也可能在逻辑单元中执行,具体在何处执行取决于事件处理模式。一个逻辑单元通常是一个进程或线程。它分析并处理客户数据,然后将结果传递给 I/O 处理单元或者直接发送给客户端(具体使用哪种方式取决于事件处理模式)。

2024-05-20 20:38:10 443

原创 Web Server项目实战3-Web服务器简介及HTTP协议

一个 Web Server 就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过与客户端(通常是浏览器(Browser))进行通信,来接收、存储,处理来自客户端的 HTTP 请求,并对其请求做出 HTTP 响应,返回给客户端其请求的内容(文件、网页)或返回一个error信息。通常用户使用 Web 浏览器与相应服务器进行通信。

2024-05-20 19:49:32 312

原创 Web Server项目实战2-Linux上的五种IO模型

上一节内容的补充:I/O多路复用是同步的,只有调用某些API才是异步的。

2024-05-20 16:38:31 433

原创 Web Server项目实战1-阻塞与非阻塞、异步与同步

一个典型的网络IO接口调用,分为2个阶段:数据就绪和数据读写数据就绪:根据系统IO操作的就绪状态数据读写:根据应用程序和内核的交互方式。

2024-05-20 11:09:30 310

原创 Linux多进程开发2 - 进程间通信

进程是一个独立的资源分配单元,不同进程之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源。但是,进程不是孤立的,不同的进程需要进行信息的交换和状态的传递等,因此需要进程间通信的目的:数据传输:一个进程需要将它的数据发送给另一个进程;通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件(如进程终止时要通知父进程);资源共享:多个进程之间共享同样的资源。为了做到这一点,需要内核提供互斥和同步机制;进程控制。

2024-04-11 15:40:07 932

原创 LeetCode算法——双指针篇

我们是要在 t 中找出和 s 可以匹配上的子串,当两个串中匹配上了同一个字符时,两个指针都向后走一步,以便进行下一个字符的匹配。若 s 的第2个字符与 t 的第2个字符没有匹配上,此时指向 s 的指针不动,指向 t 的指针继续向后移动,直到找到匹配项。当 s 的指针走完整个 s 串时,表示在 t 中有可以匹配上的子序列,而 s 的指针没有走完 s 串时,则没有匹配成功。这道题的描述中提到了“字母和数字都属于字母数字字符”,但示例中没有给出串中包含数字的情况,导致测试用例。没有通过,这也是因为我忽略了串中。

2024-04-10 11:15:06 779 1

原创 Linux多进程开发2 - 孤儿、僵尸进程

一、孤儿进程。

2024-03-29 15:07:10 2011 1

原创 LeetCode算法——数组/字符串篇

对刷过的算法进行总结,所用解法都是最符合我个人逻辑的,以后再刷的话就看这篇帖子了首先要知道数组在内存中的存储方式,这样才能真正理解数组相关的面试题数组可以方便的通过下标索引的方式获取到下标下对应的数据。举一个字符数组的例子,如图所示:需要两点注意的是正是大家如果使用C++的话,要注意 vector 和 array 的区别,vector 的底层实现是 array,严格来讲vector 是容器,不是数组。

2024-03-27 15:11:42 665

原创 Linux多进程开发1 - 进程概述

并行并发:有一个例子可以清晰地解释这二位的区别。如果将处理器(CPU)比作咖啡机,指令比作排队买咖啡的客人,则:并发是两个队列交替使用同一台咖啡机;并行是两个队列同时使用两台咖啡机。

2024-03-25 10:08:58 490

原创 Linux便捷指令合集(更新中)

而在自己的电脑上安装了 Linux 操作系统时,都要对其有一个比较深入的了解(像我就探索出系统里面自带的。很好玩),慢慢地感受另一种操作系统的魅力,下面介绍几条常用的指令,并且会。(即对当前文件做出 "保存并退出/ 退出"的模式),紧接着按下。核的计算机操作系统。不论我们出于兴趣还是就业压力(被迫学习。:wq 表明保存对文件做出的更改并退出。表示在光标的下一行插入新的一行。表示跳转到文件内容的最后一行。是操作系统的内核,而。Ubuntu(乌邦图)接文件名或路径时,按下。才能对文件进行操作(比如。

2024-03-22 19:58:37 193 1

原创 Linux系统编程入门4 - GDB调试

1. 启动程序,可以按照自定义的要求随心所欲的运行程序2. 可让被调试的程序在所指定的调置的断点处停住(断点可以是条件表达式)3. 当程序被停住时,可以检查此时程序中所发生的事4. 可以改变程序,将一个 BUG 产生的影响修正从而测试其他 BUG。

2024-03-21 15:37:38 813 1

原创 Linux系统编程入门3 - Makefile

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,Makefile 文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 Makefile 文件就像一个 shell脚本一样,也可以执行操作系统的命令。Makefile 带来的好处就是“自动化编译”,一旦写好,只需要一个 make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。

2024-03-19 20:29:29 654 1

原创 Linux系统编程入门2 - 静态库和动态库

库可以看作是计算机中的一种代码仓库,提供给用户一些可以直接拿来用的变量、函数或类。库也是一种特殊的程序,与我们所熟悉的程序区别不大,只是库不能单独运行。库分2种:静态库——在程序的链接阶段被复制到了程序中;动态库——链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中 供程序调用。(ps:有点像操作系统里的虚拟内存 )库的好处是:1.代码保密 2.方便部署和分发。

2024-03-19 09:57:53 883 1

原创 云服务器 深度学习模型训练(VSCode篇)

还是在 IDE 里调整训练代码舒服!本文根据 AutoDL 的官方教程和牛客-Linux高并发服务器开发中的一些内容来撰写一份详细的 Windows to Linux 远程链接教程,包括如何设置免密登录。​

2024-03-15 17:12:46 2629 4

原创 Linux系统编程入门1 - GCC编译器

机器语言,即由0和1组成的语言,是计算机唯一能够读懂的语言,但对人肯定十分不友好,所以出现了汇编语言,汇编语言有多难相信学过计算机的同学都知道,所以高级语言应运而生。-C表示“编译、汇编指定的源文件,但不进行链接”,此时会生成 test.o。同样的道理,例如下面用C++编写的代码对于用户来说一目了然,但是计算机看不懂,所以需要。以上内容是为了说明GCC底层的处理流程是怎样的,是理解接下来内容的关键。其中 -E 表示 “预处理指定的源文件,不进行编译”。其中 -S 表示“编译指定的源文件,但不进行汇编”。

2024-03-13 21:02:10 345 1

原创 云服务器 深度学习模型训练(FinalShell篇)

除了FinalShell之外,还可以使用各种IDE来与云服务器进行连接,这样做的好处是可以直接在IDE里编辑代码。完成以上操作后,就成功与云服务器建立连接了,自己可以把代码、数据集上传到云服务器中任意一个文件夹内,想运行代码的话,先使用指令进入代码所在的具体文件夹,如。附带一提,云服务器中自带了编辑代码的编辑器,可以直接对代码进行修改,但是并不直观,没有在IDE里看起来方便。首先,如下图所示,选好云服务器所在地区和想租赁的GPU型号,一般而言选3080、3090系列的就足够了。主机和端口都在上图中的“

2024-01-08 15:46:10 790

原创 科研向——使用PPT画图

值得注意的是.png格式的图像背景是透明的,比较方便加在论文里。开通一个WPS会员真的是特别方便,就是太贵了。将所有元素组合为一个元素后,右键就会出现“全选当前你画的图中的所有元素;

2023-12-19 16:45:53 1133

原创 基于头部姿态和面部图像数据融合的MobileViT分类任务

本篇主要讲述深度学习网络中的数据融合。

2023-12-04 15:56:20 1032 1

原创 标准C库IO函数和Linux系统IO函数对比

有2种跨平台的方式。举个栗子,第一种就像Java的跨平台,java为每个平台都设计了相应的java虚拟机,java代码在不同的平台上是一模一样的,运行也是在虚拟机上;第二种就是标准C库的IO函数的跨平台了,它的实现原理是在不同平台上调用了该平台对应的API。标准C库的IO函数是跨平台的,即用标准C库的IO函数开发的程序在各个平台上(不同的操作系统)都可以运行。指向一个已经打开的文件,文件描述符是在Linux系统中的称呼,而在Windows系统中被称作。标准C库的IO函数和Linux系统IO函数的。

2023-10-30 09:27:12 64 1

原创 Pycharm与Gitee

参考Gitee官方指令:和帖子。

2023-10-12 11:14:46 175

原创 VS2017 C++ 通过hiredis连接redis

应项目要求,调用相机后要将相机采集的视频按帧存储在Redis里,在网上各种帖子里奔波了一整天,感觉用C++来操作redis不是一个很常见的事儿,尤其是在windows下,因为网上比较好的帖子都是在Linux下进行的。辗转反合,搞出来了,这个过程值得记录一下。Redis官方推荐的cpp库有很多,我首先尝试了hiredis,因为网上关于它的帖子最多,而后又试了试Redis plus plus和cpp_redis,试来试去都没成功,。

2023-10-07 20:32:09 380 1

原创 VS2017下用C++调用Point Grey相机采集视频帧

OpenCVSpinnaker上述环境是以我自己的代码可以运行为前提而配置的。OpenCVVS2017配置OpenCV按照这个帖子来,可以成功配置OpenCV,但有几处可以精简。如图,加入 "D:\opencv\build\x64\vc15\bin"即可。原作者写的过于繁杂,在此精简,步骤为:项目(P)你自己的项目名 属性(P)VC++目录VC++目录下只需要更改两个地方:包含目录、库目录。包含目录。

2023-09-25 20:34:10 310 1

原创 MyTinySTL项目剖析

谨以此记录MyTinySTL项目的学习STL()标准模板库,是C++标准库的一部分,它提供了一组通用的模板类和函数,用于处理常见的数据结构和算法。STL的设计目标是为C++程序员提供高效、可复用的数据结构和算法,以提高代码的可维护性和性能。从代码随想录中了解到MyTinySTL这个项目,从原作者的Github那下下来后打开一看,一头雾水。Carl哥说的好,要学习一个项目,不要一上来就阅读源码,把项目跑通是首要任务。要想运行这个项目,直奔test文件夹下的test.cpp文件,运行它即可。

2023-09-25 16:46:37 971 5

原创 在Pycharm中配置新建立的python环境

2023/9/16日 开始跟进实验室项目的第二天,在Anaconda中配置好了项目所需要的环境,并使用我比较熟悉的Pycharm进行开发。4.刚刚才注意到“添加Python解释器”下有 "Virtualenv环境"和"Conda环境",就选"Virtualenv环境"吧,毕竟这个弄好了以后的包呀啥的都可以用,程序也可以正常运行。5.此时,要找到你安装Anaconda的位置,并按照图中的目录找到自己环境名称(比如我的"python32")下的python.exe,选好之后点击确定就完成了!

2023-09-16 15:12:19 1967 1

原创 侯捷 面向对象高级编程(上)第一章源码学习

看完侯捷C++面向对象高级编程(上)的前五节课,侯老师提供了2份源码:complex.h和complex_test.cpp。此文章首先解读complex.h。还未结束,再接再厉。a+adi+%28ad+bc%29i。

2023-09-07 21:32:21 234

空空如也

空空如也

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

TA关注的人

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