自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Opencv kmean,knn,svm,demo

【代码】Opencv kmean,knn,svm,demo。

2024-05-27 11:52:52 369

原创 Opencv meanshift 极简demo

【代码】Opencv meanshift 极简demo。

2024-05-25 22:36:10 289

原创 Opencv6

【代码】Opencv6。

2024-05-24 17:25:37 338

原创 OPENCV 2

【代码】OPENCV 2。

2024-05-23 15:53:31 95

原创 Opencv4

【代码】Opencv4。

2024-05-23 15:53:02 76

原创 Opencv 3

【代码】Opencv 3。

2024-05-22 20:43:24 76

原创 OPENCV 2

【代码】OPENCV 2。

2024-05-22 20:42:29 75

原创 OPENCV 1

【代码】OPENCV 1。

2024-05-14 22:16:16 99 1

原创 GIT 盘一盘

如果想要配置的git生效于当前机器的所有仓库,则需要加上global关键字。如果文件已经在缓冲区或者已经在本地仓库,我们就需要用版本回退的方式处理了。git的版本回退共分三种模式:--soft,--mixed(但是,如果我们回退到之前的版本,那么新版本也会被覆盖掉。但同一个文件有不同的操作,最后在合并的时候就容易有冲突。此时需要手动解决冲突部分,并且再提交一次。可以通过git tag给提交的ID取别名。此时,head指针指向切换后的分支。在与远程仓库连接,需要相应的命令。写入的文件会被git忽略。

2024-04-05 20:42:17 373

原创 TCP协议(一)

我们注意到, UDP协议首部中有一个16位的最大长度. 也就是说一个UDP能传输的数据最大长度是64K(包含UDP首 部). 然而64K在当今的互联网环境下, 是一个非常小的数字. 如果我们需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装;可以看见,每次发送和接受,我们都是需要把OS接口的信息拷贝到缓冲区后在做相关的处理的,所以,我们也要考虑缓冲区容量的问题。UDP具有接收缓冲区. 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;

2023-07-01 18:01:25 112

原创 HTTP(一)

其中的Key:value就是协议中需要携带的报头;该网址就是使用的大名鼎鼎的http协议。HTTP网络是一个基于TCP的网络协议。4.一般较大的文件都用Post方式传参.所请求的资源是在哪个主机的哪个端口上。声明用户的操作系统和浏览器版本信息。当前页面是从哪个页面跳转过来的。告诉客户端接下来要去哪里访问。1.Get通过URL传参。2.Post通过正文传参。用于在客户端存储少量信息。3.Get方式不私秘.

2023-06-06 18:51:36 99

原创 LINUX 守护进程(番外)

其中:"/dev/null"是信息黑洞,所有写进去的数据都会消失。

2023-06-04 11:23:27 119

原创 LINUX TCP网络

文件描述符;维护连接的数量原文件描述符;struct sockaddr_in 转sockaddr(输入输出型);sizeof(...)(输入输出型)原文件描述符;struct sockaddr_in 转sockaddr;va_end(ap);int fd;public:// 1.创建socketexit(1);

2023-06-02 19:04:07 78

原创 LINUX UDP网络

话接上文,我们大致的介绍了网络的分层,但是具体实现是如何的呢?本章内容将从编码层面实践。UDP网络的C/S模型实现较为简单,我们从UDP服务端开始介绍。

2023-06-01 19:39:03 36

原创 网络初步概述

在初步谈完操作系统后,我们来看看网络,网络其实没有那么神秘,我们大可把远程通信看作是一根很长的传输线。为了方便软件和网络的 问题归类,解耦,以及便于维护,我们将协议分层。

2023-05-31 19:56:35 36

原创 LINUX多线程(五)

信号量本质是一个计数器,且该计数器的++和--是原子的,若线程申请信号量失败就会被挂起。sem:需要初始化的信号量pshared:传入0为线程间共享,非0则进程间共享value:信号量的初始值初始化成功为0,失败返回-1信号量++;成功返回0,失败-1信号量--;成功返回0,失败-1销毁信号量代码demo。

2023-05-28 21:31:11 52

原创 LINUX多线程(四)

话接上文,我们介绍了状态变量的API,那么条件变量究竟怎么用呢?1.条件变量用来等待线程而不是上锁2.条件变量被用来实现线程同步可以看到,条件变量的等待是原子的。

2023-05-26 20:47:54 34

原创 LINUX多线程(三)

话接上文,锁的本质其实是一个互斥量,这个互斥量保证了临界区代码运行的原子性。

2023-05-25 19:29:29 62

原创 LINUX多线程(二)

demo:(一般来说,锁加的粒度越细越好,做好只加在临界区上,但是为了打印的好看一些我就不管这么多了)

2023-05-22 18:53:25 55

原创 LINUX多线程(一)

1.创建新线程的代价远小于创建一个新进程2.线程切换的代价远小于进程切换3.可充分利用多处理器的并行数量4.等待慢速I/O时,程序可执行其他任务5.计算密集型应用,为了可以在多处理器上运行,将计算分解到多个线程中运行6.I/O密集型应用,线程可以等待多个I/O。

2023-05-21 17:47:33 47

原创 LINUX信号(三)

话接上文。

2023-05-19 13:29:06 67

原创 linux:信号(二)

每个信号都有两个标志位,分别表示其阻塞(block)或未决(pending),还有一个函数指针(handle)表示处理动作。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达动作。信号从产生到递达之间的状态称为信号未决(pending)。0:success;sigismember:判断信号是否在信号集中.在接收到信号之后,有些信号会生成core文件.oldset:旧的信号集.(保留原有信号集)sigdelset:将信号从信号集中删除.sigaddset:将信号添加进信号集。

2023-05-05 21:15:18 69 1

原创 linux进程前后台切换(小计)

此时 ,ctrl+c无法杀死后台进程。

2023-05-02 21:03:06 982

原创 Linux:信号(一)

1.在linux系统中,信号对于每个进程来说都是提前已知的,换句话说,对于进程而言,即便信号没有产生,但我们已经有了处理信号的能力。2.信号的产生对于进程来说是异步的,所以当信号产生的时候,进程可能有以下几种情况:(1)中断进程(执行默认动作)(2)忽略信号(3)自定义操作。

2023-05-02 20:50:45 47

原创 ipc部分资源的管理方式

从这里可以看出在内核中,消息队列,共享内存和信号量这种ipc资源最开头的元素都是struct ipc_prem,在C语言中,结构体的地址和结构体首元素地址在数值上是相同的。当我们想要获取ipc资源中struct ipc_perm内的资源,我们可以直接取用,当我们需要XXXid_ds内的资源,我们可以强转类型。所以,每当我们申请一个ipc资源的时候,内核中会存在一个struct ipc_perm*类型的数组存储我们申请IPC资源的地址。

2023-04-27 16:30:15 157

原创 进程间通信之--------共享内存

在linux中,想要两个进程相互通信,我们有若干种方式,其中较为经典的方法就是共享内存。在此之前,让我们回顾一下通信的本质,通信的本质是在双方都看得见的区域内读写。而共享内存通信的本质是个啥呢?让我们先上图:可以看到,我们在物理内存中开辟了一个内存区,然后通过页表映射,让两个进程都能看见这块内存区域。

2023-04-26 21:46:57 753

原创 进程间管道通信(二)

书接上文,倘若我们需要对多个子进程进行通信,该怎么做呢?简而言之,只需要我们保存下每个匿名管道的读端,或是写端即可。此方法我们的父进程保存了每个子进程记录的管道的写端,并把子进程的pid号和匿名管道的写端做成一个键值对,至此,我们的父进程就可以操控多个子进程了。

2023-04-25 20:10:53 54

原创 进程间管道通信(一)

首先,介绍一下通信的本质,通信的本质可以大致看成在一个公共区域下,双方都能看见的东西。

2023-04-24 18:57:57 92

原创 vscode下gdb调试方式

并且新建launch .json文件,原有配置之后,添加配置 :gdb 启动。

2023-04-24 14:01:10 1149

原创 linux下动静态库生成及使用

每次当我们需要动态库的时候,我们的动态库在磁盘上被加载进物理内存(此时和地址无关),随后根据页表映射,动态库对于可执行文件的进程而言变得”可见“,在需要用到库的时候会跑过去执行库中的代码。执行完之后再返回执行自己的代码。为什么我们的可执行程序会运行不起来呢,因为,我们在gcc编译的时候,我们把文件的路径都告诉了gcc编译器,但是在可执行文件运行的时候,它是一个进程,它哪知道要去哪找链接的库啊。原理是这样的,静态库在生成可执行文件的时候,库里的代码已经编译进了可执行文件内,就相当于是有了个人所有的东西。

2023-04-23 21:17:28 982

原创 VS2019生成和调用动态库

VS2019下生成动态库和调用动态库的方式

2022-12-18 16:54:46 469 1

原创 VS2019下生成静态库并调用

在VS2019下生成和调用静态库还有小伙伴不清楚嘛,进来看看吧

2022-12-18 11:50:49 1178

原创 An Image Inpainting Technique Based onthe Fast Marching Method论文阅读

结合了FFM的一种图像修补方式

2022-12-13 10:12:28 402

原创 消除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-element著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路说明:快慢指针法设有一个快指

2022-03-08 11:09:23 134

原创 新开一门语言

本人之前掌握了python和部分C++,然鹅最底层的C居然迟迟没学,这样是不科学的,遂新开一贴,努力学C并分享经验。

2022-02-21 17:50:13 85

空空如也

空空如也

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

TA关注的人

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