自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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】游戏场景和图元

类的一个虚函数,其主要用途是让图形项在场景的动画或更新过程里完成特定的逻辑操作。中绘制图形项的基类。

2025-03-29 16:33:38 470

原创 【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

原创 【C++】C与C++基本区别以及构造函数

一、C与C++的区别二、命名空间三、构造函数四、析构函数

2024-12-04 23:03:03 572

原创 【操作系统】Linux时间编程(头歌)

第1关:Linux获取时间第2关:Linux时间相互转换第3关:Linux 时间定时器

2024-11-28 10:15:24 394

原创 【软件开发】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

原创 【操作系统】Linux之网络编程(UDP)(头歌作业)

第1关:UDP套接字创建与端口绑定第2关:UDP数据传送第3关:项目实战

2024-11-21 10:21:40 2385 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

原创 【操作系统】Linux高级进程通信(头歌作业)

Linux高级进程通信(头歌作业)第1关 socket之本地通信第2关 命名管理第3关 消息队列

2024-11-14 10:47:15 355

原创 【操作系统】Linux之线程同步二(头歌作业)

Linux之线程同步二(头歌作业)第1关:信号量第2关:读写锁第3关:项目实战

2024-11-14 10:21:59 807

原创 【软件开发】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

原创 【C】指针的基本知识点

指针的基本知识点

2024-11-03 20:46:06 312

原创 【操作系统】Linux之线程同步一(头歌作业)

【操作系统】Linux之线程同步一,第1关:互斥锁第2关:自旋锁第3关:条件变量第4关:项目实战

2024-10-31 10:51:25 1004

原创 【操作系统】Linux之进程管理二

printf("创建子进程失败(%s)\n", strerror(errno));

2024-10-24 13:40:08 457

原创 【蓝桥杯】壁画

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

原创 【JavaWeb】基本了解

javaWeb基本知识点

2024-10-20 18:57:50 877

原创 【java】数学运算考试系统

面向小学低年级学生,随机生成两个整数的加减法算式要求学生解答。要求有用 户登录、注册等 GUI 界面,用户数据存入文件,体现面向对象编程思想。功能 要求:【管理员】可向题库中追加题目,确保算式的和或差没有超出 0~50 范围的加减 法,负数不允许;【学生】 (1) 随机从题库中抽取出 10 道题,每题 10 分,程序结束时显示学生得分;(2) 对于每道题,学生输入正确答案得 10 分,否则不得分;

2024-06-16 23:22:54 1216

【计算机视觉】EasyPR在Ubuntu环境下的配置与集成:车牌识别系统的开发部署指南

内容概要:本文档主要介绍了在Ubuntu环境下配置EasyPR的具体步骤。首先,提供了将所需文件拷贝到Ubuntu系统的三种方式(VMware tools、FTP工具、共享文件夹)。接着,指导用户对解压后的EasyPR文件夹进行权限修改,并将其放置于/opt目录下。然后,详细说明了如何根据使用的OpenCV版本修改配置文件config.h中的宏定义。之后,通过执行build.sh脚本来编译EasyPR项目,并运行demo程序验证安装是否成功。最后,针对基于Qt创建新工程项目时如何集成EasyPR,包括添加必要的源代码路径、头文件路径以及模型文件等进行了详细介绍,同时解决了可能出现的编译错误。 适合人群:具有一定Linux操作基础和C++编程经验的研发人员,尤其是那些需要在Ubuntu平台上部署或开发与车牌识别相关的应用开发者。 使用场景及目标:①为希望快速搭建EasyPR开发环境的研究人员提供详细的配置指南;②帮助开发者理解并解决在集成EasyPR到Qt项目过程中遇到的问题;③确保能够正确配置和使用OpenCV不同版本下的EasyPR功能模块。 阅读建议:由于文档涉及较多命令行操作和环境配置细节,在阅读时应结合实际操作逐步进行,并仔细检查每一步骤的结果,特别是对于涉及到路径设置和版本兼容性的部分要格外留意。此外,遇到问题时应及时查阅相关资料或社区支持,确保顺利完成整个配置流程。

2025-06-01

【Linux数据库管理】Ubuntu环境下MySQL数据库的安装配置与远程访问设置教程

内容概要:本文档详细介绍了在Ubuntu 16.04系统上安装和配置MySQL数据库的步骤。主要内容包括:准备阶段确保系统环境和镜像源;通过命令行安装MySQL服务端和客户端,并设置root用户密码,要求密码符合中等强度的安全策略;配置MySQL安全性,如删除匿名用户、限制root远程登录和移除测试数据库;测试MySQL服务状态和服务可用性;安装MySQL Workbench可视化工具;创建远程访问root用户,允许从任何IP地址访问,并授予相应权限;创建数据库及修改字符编码以支持多语言;最后介绍安装MySQL Connector/C++开发包及其功能,以及配置C++工程以使用MySQL。 适合人群:具有一定Linux基础,尤其是Ubuntu操作系统使用经验,以及对数据库管理和编程有一定了解的技术人员。 使用场景及目标:①适用于希望在Ubuntu环境下部署MySQL数据库的个人或企业用户;②为开发者提供详细的指导,帮助他们搭建开发环境,特别是需要通过C++连接MySQL的应用程序开发;③确保数据库的安全性和稳定性,满足生产环境的要求。 阅读建议:由于本文档涉及较多命令行操作和配置细节,建议读者按照步骤逐一实践,同时注意根据自身需求调整配置选项,如密码策略、远程访问控制等。对于不熟悉的命令或概念,可以通过查阅官方文档或在线资源加深理解。

2025-05-17

Ubuntuqt5.9.8的安装

Ubuntuqt5.9.8的安装

2025-05-10

【计算机视觉】Ubuntu系统下OpenCV 3.4.2环境配置及依赖安装:从源码编译到Qt集成全流程指南了文档的主要内容

内容概要:本文档详细介绍了在Ubuntu系统上配置OpenCV 3.4.2开发环境的具体步骤。首先,通过VMware tools、FTP工具或共享文件夹将OpenCV压缩包拷贝到Ubuntu系统并解压,随后使用终端命令`chmod -R 777`修改文件夹权限。接着,修改Ubuntu的安装源为阿里云或清华大学镜像源,以确保依赖包的顺利安装。通过一系列`apt-get`命令安装OpenCV所需的各种依赖库,如cmake、git、libgtk2.0-dev等。完成依赖安装后,使用CMake配置OpenCV源码并生成构建文件,指定构建路径并启用`BUILD_opencv_world`选项。接下来,通过`make -jX`命令多线程编译OpenCV源码,待编译完成后执行`make install`安装OpenCV库文件。最后,修改`/etc/ld.so.conf`文件并执行`ldconfig`命令使OpenCV库生效,并重启Ubuntu系统实现开机自动加载OpenCV环境。 适合人群:具备Linux基础操作技能和C++编程经验的研发人员,尤其是计算机视觉领域的开发者。 使用场景及目标:①为计算机视觉项目搭建稳定高效的开发环境;②掌握OpenCV库的安装与配置流程;③为后续基于OpenCV的图像处理和机器视觉应用开发奠定基础。 阅读建议:建议读者按照文档步骤逐一操作,遇到问题时可以参考官方文档或社区论坛寻求帮助。同时,建议读者在实际操作前备份重要数据,以防意外情况导致数据丢失。

2025-05-10

ffmpeg在LInux的安装

ffmpeg在LInux的安装

2025-05-10

Qtffmpeg库文件

Qtffmpeg库文件

2025-03-01

Qt数据库编程(SQLite API)

sqlite3的环境配置

2025-03-09

公司订单系统课程设计(C++)

使用一个类实现增添、浏览、查询、删除、统计功能

2023-07-16

python课件(类与对象)

python课件(类与对象)

2024-04-09

python课件(数据结构与函数设计2)

python课件(数据结构与函数设计2)

2024-04-09

python课件(数据结构与函数设计)

python课件(数据结构与函数设计)

2024-04-09

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

TA关注的人

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