Serenitatis🌕
Opencv_0 开始Opencv之旅
Opencv简介OpenCV (Open Source Computer Vision Library) 是一套跨平台计算机视觉库,由Intel、OpenCV.org和其他贡献者共同开发,其功能包括图像处理、计算机视觉、机器学习和3D图形等方面。OpenCV支持多种编程语言,包括C、C++、Python、Java、MATLAB等。 OpenCV的主要优点有: 开源免费:OpenCV是开源免费的,可以免费用于研究、开发、测试和教学。 跨平台:OpenCV支持多种编程语言,包括C、C++、Python、Java、MATLAB等,可以运行于各种操作系统。 功能丰富:OpenCV提供了丰富的图像处理、计算机视觉、机器学习和3D图形等功能。 性能高:OpenCV的性能优于其他计算机视觉库,尤其是在处理大图像时。 文档齐全:OpenCV的文档齐全,包括教程、API文档、示例代码、论文等。 OpenCV安装OpenCV可以从官方网站下载安装包,也可以通过conda、pip等包管理器进行安装。 本文以Windows系统和vs编辑器为例,介绍如何安装和配置OpenCV。 1 下载安装包首先 ...
Opencv_1 Opencv如何转换图片格式(颜色空间)
Opencv如何转换图片格式(颜色空间)1 Opencv中常见的颜色空间1.1 . BGR(Blue-Green-Red):即蓝绿红色,是最常用的颜色空间,OpenCV中默认的颜色空间。与RGB仅顺序不同。 BGR的用途:在显示器上显示的颜色。 BGR的优点:简单、直观。 BGR的缺点:不能反映颜色的饱和度和明度。 1.2 . HSV(Hue-Saturation-Value):色调饱和度明度。HSV色彩空间是一种常用的色彩模型,它模仿了人类对颜色的感知方式。HSV代表的是色调(Hue)、饱和度(Saturation)和明度(Value),这三个组成部分构成了HSV色彩空间的基本特性。下面是对HSV色彩空间特点的详细介绍: 色调 (Hue): 色调表示颜色的基本类型,如红色、绿色、蓝色等。 在HSV模型中,色调是一个角度值,范围通常是0°到360°,其中0°和360°表示红色,120°表示绿色,240°表示蓝色。 色调通常用来描述颜色的“纯度”或“色相”。 饱和度 (Saturation): 饱和度表示颜色的强度或纯度。 在HSV模型中,饱和度是一个百分比值,范围从0%到1 ...
Qt5:0d01 简单计算器
MainWindow_calculator 说明文档简介MainWindow_calculator 是一个基于 Qt 框架的简单计算器应用程序的主要窗口类。该计算器支持基本的算术运算,包括加、减、乘、除,并具有清除和退格功能。用户界面由按钮和一个只读文本框组成,允许用户输入和查看表达式及结果。 类构造构造函数cpp 复制 1MainWindow_calculator::MainWindow_calculator(QWidget *parent) 参数 : parent: 父级 QWidget 指针,通常为主窗口。 功能 : 设置中心部件和布局,初始化显示区域和按钮布局。 主要组件 中心部件 : 创建一个新的 QWidget 作为界面的中心部件。 布局 : 使用 QGridLayout 布局将显示区域和按钮排列。 显示区域 : QLineEdit 用于显示输入和结果,设置为只读状态。 按钮布局 按钮组织为一个 5 行的矩阵,每行包含 4 个按钮,最后一行有两个特殊按钮: 数字按钮: 0-9 运算符按钮: +, -, *, / 功能按钮: C (清除), ...
Qt5:1d01QT基础
[TOC] 帮助文档的阅读: Related Non-Members:通常指的是与该类相关的全局函数或其他非成员函数。 Detailed Description :详细描述 基础窗口 QWidget:最基础的窗口类,适合创建自定义控件或简单窗口,也即选项框和状态栏。 QDialog:用于创建对话框,适合短暂的用户交互,也即弹窗。 ​ 右键IDE的项目文件夹、add new、选择QT并添加对应窗口、在主窗口头文件中引入新窗口文件、在主窗口类中添加 指向新窗口的指针、在组件的槽函数中创建对象、显示新窗口。 12345if(!dialog_ui){ dialog_ui = new QDialog(this); dialog_ui->show();} QMainWindow:用于创建主应用程序窗口,适合复杂的应用程序界面。 窗口的基本操作 窗口的移动 基础组件 QButton:按钮类,常见方法为 QText:用于创建对话框,适合短暂的用户交互,也即弹窗。 QMainWindow:用于创建主应用程序窗口,适合复杂的应用程序界面。 QT封装的数据 ...
无题
Linux:4d01网络编程OSI(开放系统互连)七层模型和TCP/IP四层模型是网络通信中常用的两种分层模型,分别用于描述网络协议栈的结构和功能。 参考模型OSI模型是一个理论上的参考模型,将网络通信分为七层,每一层都有特定的功能。 层级 名称 功能 示例协议/设备 第7层 应用层(Application) 提供用户接口和网络服务(如文件传输、电子邮件等) HTTP, FTP, SMTP, DNS 第6层 表示层(Presentation) 数据格式转换、加密解密、压缩解压缩 SSL/TLS, JPEG, MPEG 第5层 会话层(Session) 建立、管理和终止会话(连接) NetBIOS, RPC, SIP 第4层 传输层(Transport) 提供端到端的可靠数据传输(如流量控制、错误恢复) TCP, UDP 第3层 网络层(Network) 数据包的路由和转发(选择最佳路径) IP, ICMP, ARP, 路由器 第2层 数据链路层(Data Link) 提供节点到节点的可靠数据传输(如帧同步、错误检测) Ethernet, MAC, ...
C++:5d1C++错误处理与新标准
C++:4d1错误处理与新标准[TOC] 错误处理C++ 中的错误处理机制主要包括以下几种方式: 异常处理(Exception Handling): C++ 提供了异常处理机制,可以在程序出现错误时抛出异常,并在适当的地方捕获和处理异常。 使用 try、catch 和 throw 关键字来实现异常处理。 示例代码:12345678910111213141516171819#include <iostream>#include <stdexcept>double divide(double a, double b) { if (b == 0) { throw std::runtime_error("Division by zero"); } return a / b;}int main() { try { double result = divide(10, 0); std::cout << " ...
C++:2d1面向对象
C++基础:0d2面向对象[TOC] 构造对象在C++中,class 和 struct 都可以用于定义自定义类型,并且它们都可以包含成员变量和成员函数。然而,它们在默认访问权限和继承方式上有一些区别。 1. 默认访问权限 class: 默认的成员访问权限是 private。这意味着如果你不显式指定访问权限,类的成员变量和成员函数将是私有的,只能在类的内部访问。 struct: 默认的成员访问权限是 public。这意味着如果你不显式指定访问权限,结构体的成员变量和成员函数将是公有的,可以在类的外部访问。 123456789101112class MyClass { int x; // 默认是 privatepublic: void setX(int val) { x = val; } int getX() const { return x; }};struct MyStruct { int x; // 默认是 public void setX(int val) { x = v ...
C++:4d1泛型、模板与STL
C++:3d1泛型、模板与STL[TOC] 泛型与模板C++中的泛型编程主要通过模板(Template)实现,它允许编写与类型无关的代码,从而提高代码的复用性和灵活性。泛型编程的核心思想是编写通用的代码,适用于多种数据类型,而不需要为每种类型单独实现。 1. 函数模板函数模板允许定义一个通用的函数,适用于多种类型。编译器会根据调用时传入的参数类型自动生成对应的函数实例。 1234567891011template <typename T>T add(T a, T b) { return a + b;}int main() { int result1 = add(3, 4); // 调用 add<int>(3, 4) double result2 = add(3.5, 4.2); // 调用 add<double>(3.5, 4.2) return 0;} template <typename T> 声明了一个模板,T 是一个占位符,表示任意类型。template ...
Typora1.9激活工具
Typora1.9激活工具https://www.123684.com/s/ID0Ejv-nZ73v提取码:r4nB 注:该脚本编译自开源项目(https://github.com/DiamondHunters/NodeInject_Hook_example) 把解压出来的两个 exe 文件复制到 Typora 的安装目录下。 以管理员身份运行 CMD。 输入“cd 安装路径”,按回车,跳转到 Typora 再重新激活的。安装路径。 先输入 node_inject.exe 按回车,等待提示”done!”。 再输入 license-gen.exe 按回车,等待显示序列号。 打开 Typora 并输入序列号激活。 更新后可能导致无法激活,需要先彻底卸载 Typora 再重新激活。
C++1d1C到C++
C++基础:1d1C到C++[TOC] 1 C到C++1.1 缺省函数参数在C++中,缺省函数参数(Default Function Arguments)允许你在定义函数时为某些参数指定默认值。如果调用函数时没有为这些参数提供值,编译器会自动使用默认值。这使得函数调用更加灵活,减少了需要编写的重载函数数量。 在函数声明或定义中,可以为参数指定默认值。语法如下: 1返回类型 函数名(参数类型 参数名 = 默认值); 以下是一个简单的示例,展示了如何使用缺省函数参数: 123456789101112131415#include <iostream>// 函数声明,带有缺省参数void printMessage(const std::string& message = "Hello, World!");int main() { printMessage(); // 使用默认参数 printMessage("Custom Message"); // 提供自定义参数 return 0;}// 函数定 ...
linux2.2系统编程-进程管理
linux2.2系统编程-进程管理​ 每个进程都有独立的地址空间、系统资源(如文件描述符、信号处理器等)。因此,进程之间的切换开销较大,因为需要保存当前进程的状态,并加载下一个进程的状态。进程的实现并不依赖多核并行计算,而是通过时间片实现。时间片是指通过时分复用为每个进程分配较为完整的虚拟内存。 ​ 线程是对进程的分割,避免进程的资源浪费。线程是轻量级的,它属于某个进程,并且与同一进程中的其他线程共享大多数资源(如内存地址空间、打开的文件等),但每个线程有自己的执行上下文(如寄存器状态、堆栈指针等)。由于线程间共享资源,线程间的切换比进程间的切换要快得多。 1 进程与线程的区别进程(Process)和线程(Thread)都是操作系统进行运算调度的基本单位,但它们之间有几个关键的区别: 资源拥有 进程:每个进程都有独立的地址空间、系统资源(如文件描述符、信号处理器等)。因此,进程之间的切换开销较大,因为需要保存当前进程的状态,并加载下一个进程的状态。 线程:线程是轻量级的,它属于某个进程,并且与同一进程中的其他线程共享大多数资源(如内存地址空间、打开的文件等),但每个线程有 ...
Linux系统IO(1)
Linux系统IO(1)1 目录 Linux系统IO 目录 1. IO缓冲 1. IO缓冲 2. 标准错误 1. 标准错误的作用 2. 标准错误的特点 3. 如何使用标准错误 文件IO 1. 打开和创建文件 2. 关闭文件 3. 读取和写入文件 4. 文件位置控制 1.1 . IO缓冲缓冲区:在内存中开辟一块空间,用来暂时存放数据,以便后续处理。 缓冲区的作用: 减少IO操作,提高效率 缓冲区可以提高数据的可靠性 缓冲区可以提高数据的一致性 缓冲区的分类: 全缓冲区:缓冲区的大小等于数据块的大小,数据被一次性读入缓冲区,并在缓冲区中处理。 行缓冲区:缓冲区的大小等于数据块的大小,数据被分成一行一行的读入缓冲区,并在缓冲区中处理。 无缓冲区:数据直接从磁盘读入内存,不经过缓冲区。 缓冲区的一般性选择: 对于磁盘IO,选择全缓冲区或行缓冲区。 对于网络IO,选择行缓冲区。 对于内存IO,选择无缓冲区。 123456789101112131415#include <stdio.h>int setvbuf(FILE *stream, char *buf ...
avatar
🐟认真摸鱼中
Serenitatis🌕
Future is now 🍭🍭🍭
前往小窝
公告栏
小破站施工中
小站资讯
文章数目 :
83
已运行时间 :
本站总字数 :
16.4w
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换阅读模式关于博客美化设置切换全屏打印页面