- 博客(126)
- 收藏
- 关注
原创 【OpenCV】帧差法、级联分类器、透视变换
本文介绍了三种计算机视觉技术:帧差法、OpenCV级联分类器和透视变换。帧差法适用于固定摄像头场景,通过计算连续帧的像素差异来检测运动目标,具有计算效率高、内存占用少等优点,但对噪声敏感且无法检测静止目标。OpenCV级联分类器用于特定目标的检测,需大量标注数据训练,计算效率高但泛化能力有限。透视变换通过findHomography和warpPerspective函数将倾斜图像校正为正视图,适用于图像校正和视角变换。每种技术都有其适用场景和局限性,需根据具体需求选择合适的方法。
2025-05-17 23:42:45
1444
原创 【OpenCV】基本数据类型及常见图像模式
OpenCV是一个开源的跨平台计算机视觉库,广泛应用于目标识别(如人脸、车辆、车牌)、自动驾驶、医学影像分析、视频内容理解与分析(如文字识别、公众人物识别、物品分类)等领域。它支持多种基本数据类型,包括点和向量类型(如二维点、三维点)以及标量类型(用于表示颜色或像素值)。OpenCV还支持多种图像模式,如位图、灰度、RGB等,并提供了丰富的图像处理功能,如雪花屏生成、高斯模糊、中值滤波、毛玻璃效果、灰度转换和方向模糊等。通过使用OpenCV,开发者可以高效地实现复杂的计算机视觉任务,解决实际问题。
2025-05-17 23:39:47
965
原创 【无标题】I/O复用(epoll)三者区别▲
SOCKET-IO复用技术是一种高效处理多个套接字的手段,允许单个线程同时监听多个文件描述符的I/O事件,提升并发处理能力,减少资源开销。主要技术包括select、poll和epoll。select使用固定大小的位掩码数组,扩展性差;poll采用动态链表,突破了select的限制;epoll则利用内核红黑树和就绪链表,自动管理文件描述符,性能最优。epoll支持水平触发(LT)和边缘触发(ET)两种模式,LT持续通知就绪事件,ET仅在状态变化时通知一次。相比于select和poll,epoll在处理大量并发
2025-05-10 23:27:52
1110
原创 【Linux】POSIX 线程信号量与互斥锁▲
文章主要介绍了多线程编程中的关键概念和技术,包括高内聚、低耦合、线程安全问题及其解决方案。高内聚强调模块功能单一且集中,低耦合则要求代码间依赖关系简单。线程安全问题通过线程同步技术(如信号量和互斥锁)解决,但需注意同步可能降低效率。文章详细介绍了POSIX线程库中的信号量、互斥锁、条件变量和线程池的使用方法及其区别。信号量允许多个线程同时访问资源,而互斥锁则确保独占访问。条件变量用于线程等待特定事件,线程池则通过复用线程减少创建和销毁的开销,提高系统性能。文章还提供了线程池的实现示例,展示了如何管理任务队列
2025-05-07 09:36:54
442
原创 【Linux】文件和 IPC 通信之管道(1)
是一种进程间通信的方式,把从一个进程连接到另一个进程的一个数据流他是一种单向的通信机制,数据只能读或者只能写(一个管道只能负责一个读或者写)
2025-04-25 08:53:05
475
原创 【Linux】IPC 进程间通信之消息队列+内存共享+信号量(3)
当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号子进程干活,主进程监视,出问题重开。
2025-04-25 08:44:23
962
原创 【Linux】网络基础和 IPC 进程间通信之socket(4)
2.网络通信三要素: 3.网络通信协议:TCP/IP簇 传输层协议:TCP、UDP区别,应用场景: 4.TCP通信过程: 5.TCP编程相关API 5.1、TCP通信框架 (1)C/S(Client/Server,客户端 / 服务器)架构: (2) B/S(Browser/Server,浏览器 / 服务器) 5.2、Socket:套接字,用于网络通信之用 5.3、网络 5.4、C/S函数实现
2025-04-24 18:22:29
999
原创 【Linux】IPC 进程间通信 之信号(2)
信号是UNIX系统响应某些状况而产生的事件,进程在接收到信号时会采取相应的行动。比如内存段冲突、浮点处理器错误或者非法指令等信号模拟的是硬件中断方式,它传递的信息很少,可以用来做进程间的通知或者错误的警告等信号就是【进程间通信】的一种方式,它采用异步工作的方式(qt的信号与槽,线程)
2025-04-15 23:21:31
637
原创 【Linux】进程管理
PCB 就像是进程的 “管理档案”,记录着进程的各种信息,而代码段、数据段和堆栈段则是进程运行时所用到的不同功能区域的内存空间。它们共同构成了 Linux 下的进程结构,彼此相互配合,使得进程能够正常运行。,占用内存空间(动态存在),每个进程都有一个唯一的数字标识符,进程id唯一,但限制时间为这一次的开机维持时间,id随机分配,返回值为pid_t只是在内核函数里面进行宏定义,为了便于区分,实际id返回还是int型。if与else都运行了,并且num的值在主进程与子进程中各自执行++,互不影响。
2025-04-10 23:14:48
535
原创 【Linux】设备与文件IO
前提说明:所有linux的系统调用都是使用c语法,没有STL、类等在虚拟机中,使用man [数字] 函数名,可以查函数信息,不同的版本。
2025-04-09 13:35:58
658
原创 【Qt】三种操作sqlite3的方式及其三种多表连接
一、sqlite3与MySQL数据库区别: 1. 数据库类型 2. 数据处理规模 3. 并发性能 4. 功能特性 5. 安全性 二、连接多个表三种方式 总结: 1. 等值连接 2. 内连接(JOIN ON) 3. 外连接 (1)左外连接(LEFT JOIN 或 LEFT OUTER JOIN) (2)右外连接(RIGHT JOIN 或 RIGHT OUTER JOIN) (3
2025-03-29 18:08:04
1393
原创 【Qt】ffmpeg编码—存储(H264)
一、编码分析 1.解码线程: 2.编码线程: 二、ffmpeg编码 1.注册所有组件 2.编码初始化函数 (2)打开视频流 4.查找编码器 5. 写文件头信息,写到formatContex中 6.发送一帧数据给编码器 7.将像素数据转码压缩码流数据 8.写一帧数据到文件
2025-03-29 15:48:49
1233
2
原创 【Qt】C++前向声明与Qt信号与槽的区别
主要是为了降低编译依赖,减少编译时间。当一个类仅需要知道另一个类的存在,而不需要其完整定义时,就可以使用前向声明。:信号与槽是 Qt 框架提供的一种对象间通信机制。槽是普通的 C++ 成员函数,用于接收信号并执行相应操作。不同的对象可以通过信号与槽机制进行交互,而不需要知道彼此的具体实现细节,提高了代码的可维护性和可扩展性。在前向声明,只有声明,知道有这个类,但是不知道里面有什么,而在.cpp里面引用其头文件后,就可以调用里面的函数。:前向声明是在代码里仅仅声明一个类、函数或者变量,而不给出其完整定义。
2025-03-26 21:45:09
372
原创 【Qt】ffmpeg解码—照片提取、视频播放▲
一、图像的成像原理:RGB成像原理:YUV成像原理:二、多线程三、ffmpeg解码(照片提取)1.准备工作(1)在工程文件夹里面新建三个文件夹(2)在main函数中加入这两个(3)在要解码的多线程子线程中加入(4)在.pro文件工程里面加入2.注册主键3.打开视频文件4.获取视频信息5.判断是否有视频流6.查找编码器7.打开编码器8.读取一帧压缩数据9.读取一帧压缩数据,解码一帧数据四、视频播放1.paintEvent界面重绘事件2.在子线程中发送图片信号
2025-03-01 15:08:27
1292
原创 【Qt】编程基础
一、Qt体系框架:编辑二、布局方式:1.绝对布局setGeometry()函数2.盒子布局:QHBoxLayout:水平布局管理器QVBoxLayout:垂直布局管理器QGridLayout:网格布局管理器三、基本控件及其函数标签类 :QLabel按钮类:QPushButton编辑框类 :QLineEdit下拉框类:QComboBox复选框类:QCheckBox调色板类:QPalette 提示框类:QMessageBoxQWidget基本函数
2025-02-28 17:36:50
817
原创 【Qt】MVC设计模式
1.先创建一个model父类BaseModel,因为每个表都是有需要增删改查等等业务处理,如果每一个表都写一个处理类,那么类就很多,创建就不方便,所以用父类来统一类型,这个类必。有一个表就可以有一个这样的操作类,例如:UserModel对应用户表操作,VideoMode对应视频表操作.....3.UserModel子类要去实现父类虚函数或纯虚函数,即继承的多态中对父类成员函数重写,重写函数就为具体的某个业务操作,例如:登录业务、注册业务、分页显示业务....一个表(或视图)就有一个数据类。
2025-02-28 17:02:11
911
原创 【Qt】数据库编程(SQLite API)
是 SQLite 库中的一个重要结构体,它代表了一个预编译的 SQL 语句对象,也被称为 “准备好的语句(prepared statement)”。用于指定项目链接时需要包含的库文件,这里链接的是 SQLite3 数据库的库文件。返回SQLITE_DONE表示执行完成,无数据。如果只是执行SQL,则该函数只调用一次即可。2、col-列位置,预编译 SQL 语句对象指针。表示绑定成功,否则失败。参数: sqlite3。要绑定的文本数据指针。表示准备好一行的数据。5.预编译SQL语句。语句未使用部分的指针。
2025-02-21 12:48:17
1016
原创 【C++】new与malloc、三种传参、函数重载及内联函数
一、new-delete以及malloc-freequbie二、值传参-指针传参 -引用传参三、函数重载四、内联函数
2024-12-04 23:16:15
1173
原创 【软件开发】SpringBoot + MyBatis 结合 MVC框架设计(头歌)
第1关:项目整合 - SpringBoot + MyBatis第2关:使用SpringBoot + MyBatis实现一个最简单的注册
2024-11-28 08:55:40
368
原创 【操作系统】Linux之网络编程(TCP)(头歌作业)
第1关:TCP套接字创建与端口绑定第2关:TCP监听与接收连接第3关:TCP连接的建立与终止第4关:TCP数据传送
2024-11-21 11:13:38
1062
4
原创 【软件开发】Spring Bean的装配方式(头歌作业)
第1关:基于 XML 的 Bean 装配第2关:基于注解的 Bean 装配第3关:自动装配 Bean
2024-11-21 08:50:04
355
原创 【C】文件的写入与读取
3. fseek (FILE *fp, long int offset, int origin): 改变文件位置指针的位置。w+:读写(建立一个新的文件,如果文件已经存在,就会把原来里面的内容清空)//w+打开二进制文件会清空文件里的内容,所以只适合文件不存在时使用。
2024-11-16 16:17:31
2123
原创 【C】链表的创建、打印、插入、删除等
链表两个概念:1.普通链表 data定义数据类型指针(不够灵活)2.通用链表 data定义void*(可以接受任何数据类型的指针地址)注意:头结点是哨兵结点,没有数据及其地址。
2024-11-16 16:01:02
894
1
原创 【软件开发】Spring 面向切面编程(头歌作业)
【软件开发】Spring 面向切面编程(头歌作业)第1关:使用前后置通知统计所有方法的执行时间 第2关:使用环绕通知统计所有带参方法的执行时间 第3关:AOP实现原理-JDK动态代理 第4关:AOP实现原理-CgLib动态代理
2024-11-14 10:00:27
889
原创 【C】无类型指针及函数指针
(3)void* 通常用在函数的参数中,给函数参数带来很大的灵活性,当函数参数是void*,可以接受任意数据地址,但无法判断是什么类型,可以加个类型判断。(2)可以其他类型赋给无类型指针,但是无类型指针赋给有类型指针会警号;4.函数指针,定义一个数组,定义一个数组,里面每个元素存放一个函数指针。
2024-11-07 15:25:24
1096
原创 【操作系统】Linux之线程同步一(头歌作业)
【操作系统】Linux之线程同步一,第1关:互斥锁第2关:自旋锁第3关:条件变量第4关:项目实战
2024-10-31 10:51:25
1004
原创 【蓝桥杯】壁画
Thanh 想在一面被均分为 N 段的墙上画一幅精美的壁画。每段墙面都有一个美观评分,这表示它的美观程度(如果它的上面有画的话)。不幸的是,由于洪水泛滥,墙体开始崩溃,所以他需要加快他的作画进度!每天 Thanh 可以绘制一段墙体。在第一天,他可以自由的选择任意一段墙面进行绘制。在接下来的每一天,他只能选择与绘制完成的墙面相邻的墙段进行作画,因为他不想分开壁画。在每天结束时,一段未被涂颜料的墙将被摧毁(Thanh 使用的是防水涂料,因此涂漆的部分不能被破坏),且被毁掉的墙段一定只与还未被毁掉的墙面相邻。
2024-10-24 13:31:40
400
原创 【操作系统】Linux之进程管理一
if(pid==-1) printf("创建进程失败!if(pid==-1) printf("创建进程失败!printf("调用atexit函数错误!
2024-10-24 13:29:38
395
原创 【C】用c写贪吃蛇
4.蛇头碰撞到食物后,吃下食物变成蛇身的一部分●,重新生成食物位置,显示在地图上。1.输入正确的账号密码及其用户名,登录成功进入贪吃蛇游戏界面,2.随机生成蛇头★、食物▲的位置(x,y),并使用□打印地图。5.蛇撞墙后或蛇咬到自己的身体,程序结束,统计吃到的食物数量。3.使用w s a d按键,完成蛇头的上下左右移动。
2024-10-24 13:13:48
3404
5
原创 【C】数组及其字符串
例:编写一个系统登录界面,输入用户名(chen)和密码(1234),用户名只能输入字符8位,密码只能输入数字12位,使用光标定位函数。
2024-10-20 19:35:55
369
1
原创 【java】数学运算考试系统
面向小学低年级学生,随机生成两个整数的加减法算式要求学生解答。要求有用 户登录、注册等 GUI 界面,用户数据存入文件,体现面向对象编程思想。功能 要求:【管理员】可向题库中追加题目,确保算式的和或差没有超出 0~50 范围的加减 法,负数不允许;【学生】 (1) 随机从题库中抽取出 10 道题,每题 10 分,程序结束时显示学生得分;(2) 对于每道题,学生输入正确答案得 10 分,否则不得分;
2024-06-16 23:22:54
1216
【计算机视觉】EasyPR在Ubuntu环境下的配置与集成:车牌识别系统的开发部署指南
2025-06-01
【Linux数据库管理】Ubuntu环境下MySQL数据库的安装配置与远程访问设置教程
2025-05-17
【计算机视觉】Ubuntu系统下OpenCV 3.4.2环境配置及依赖安装:从源码编译到Qt集成全流程指南了文档的主要内容
2025-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人