avatar
文章
114
标签
43
分类
35

Home
Tags
Categories
Music
港乐Live Show
Eden Mo Blog
搜索
Home
Tags
Categories
Music
港乐Live Show

Eden Mo Blog

简记:正则表达式
发表于2025-01-08
正则表达式 仅记录常识。 单字符匹配 1234567[abcd] 仅匹配列表中的单个字符[^abcde] 匹配列表以外的字符单字符[a-z] 匹配a-z,大写、数字同理[\w] 匹配小写、大写、数字、下划线,同[A-Za-z0-9_](单个字符)[\d] 匹配单个数字[\s\S] \s匹配空白符(空格、tab、换行等);\S匹配非空白符(非换行、空格、制表等);[.] 任意单字符,除了换行; 多次匹配 12345{n} 匹配n次{n,m} 匹配n到m次* *前面的字符或者表达式匹配0次或多次+ +前面的字符或者表达式匹配1次或多次? ?前面的字符或者表达式匹配0次或1次 例子: 12345678910string test = "edcbabcdex"; ...
C++ Qt数据类型
发表于2025-01-04|C++ Qt开发|C++ Qt
Qt作为一种跨平台开发工具,具有强大的基本数据类型基础,除了承袭C++和STL数据类型的衣钵,还抽象出大量的Qt特色数据类型支撑以满足应用开发的各种需求。本文记录了常用的一些数据类型,持续更新。 Qt基本数据类型 以下数据类型对应不同位数,用于要求较高的场合;跨平台环境应该避免直接使用int和long,int最常见是32位的,但是也见16位、64位;long在32位系统是32位,相当于int,在64位系统是64位的,相当于long long。 类型 大小 说明 bool 8位 布尔 int8_t/qint8 8位 signed char int16_t/qint16 16位 signed short int32_t/qint32/int 32位 signed int int64_t/qint64 64位 long long int uint8_t/quint8 8位 unsigned char uint16_t/quint16 16位 unsigned sh ...
OpenCV C++记录(五):插值算法:最近邻插、双线性插值、双三次插值
发表于2024-12-27|OpenCV|C++高阶•OpenCV
插值算法 图像放缩的过程也是像素增加、减小的过程,因此需要插值算法、采样算法等,在保证一定性能的基础上争取较好的输出质量。记录几种方法原理,对应OpenCV中几种常用插值算法,分别是最近邻插值、双线性插值、双三次插值,其性能依次递减,效果依次递增,其中双线性插值是二者比较均衡的算法,是许多插值模型的默认模式。如果对原生插值算法无兴趣,可直接跳过本文,看简单的放缩函数,不小心引出这么一大段,我想也是比较扯蛋,但终归有所收获。 最近邻插值INTER_NEAREST 最近邻插值最大的特点是:不会产生新的像素,目标图像的像素均来自源图像,新图像坐标与源图像坐标对应如下: 例如将2*2的图片放大成4*8的图片,新图(3,8)位置的像素计算: 故取原图(2,2)位置的像素。 最近邻插实现图像放大:由于我先完成了双三次和双线性插值算法再回头写这个,有些问题反而在篇头省略了。例如这里的int y_ = round((i+0.5)*scale_y-0.5)等详见后文《双线性插值优化》讨论,是一种几何中心对齐,主要是用于纠正计算参考点时几何中心偏差。 123456789101112131 ...
OpenCV C++记录(四):基本图形绘制与图像操作
发表于2024-12-21|OpenCV|C++高阶•OpenCV
图形绘制 line画线函数 123456void cv::line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0)// 参数解释:输入图形、Point起点、终点、Scalar颜色、粗细 // lineType为连接线类型(默认八方向线LINE_8),抗锯齿可使用LINE_AA// shift代表坐标缩放(除以2的shift次方) 实例: 12345678910111213141516171819202122232425262728293031323334353637#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img; img.create(Size ...
OpenCV C++记录(三):颜色空间/椒盐/高斯噪声
发表于2024-12-18|OpenCV|C++高阶•OpenCV
图像基础 位图与矢量图 位图是以像素表示图像信息,因此能很容易控制色彩和细节信息,容易进行编辑,但最大的问题在于位图的清晰度束缚于像素分辨率,无限放大的图片必然带来图像的失真,清晰度下降;矢量图则是比较少接触的图像,它不以像素存储图像信息,而是使用各种数学化的几何元素、线段、曲线、多边形等描述,其算法不随放大而变化,因此无限放大下依然能够保持图像清晰,但因为设计数学公式运算,其编辑灵活性较低,矢量图格式包括swf、dwg、emf等; jpeg、jpg和png 这是位图中常常看到的三种格式,其中jpeg、jpg是一种格式,命名差异在于早期Windows限定三个字符,因此将jpeg称为jpg/jif等,jpg的特点是对图像进行有损压缩,体积较小,容易传播,一般的jpg压缩率是95%,即质量值为95,质量值越低,清晰度越差;jpg通常采用Progressive JPG(渐进式加载)的保存方式,网络接收时先展示图像的模糊轮廓,再逐渐填充其他细节,在应用图片加载比较常用;另一种保存方式是Baseline JPG(线性加载),从上到下进行扫描和显示,jpg适用于风景图片(压缩效果不容易导致 ...
OpenCV C++记录(二):Mat数据类型
发表于2024-12-16|OpenCV|C++高阶•OpenCV
Mat数据类型 Mat是OpenCV特有的结构,其可以存储图像和矩阵,其中Mat支持不同的数据类型,表示不同的数据长度和通道数量。命名规则是CV_nUCm,其中n是数据长度,m是通道数量,从数据长度来看一般有CV_8U、CV_8S、CV_16U、CV_16S、CV_32S、CV_32F、CV_64F七种,U代表Unsigned、S代表Signed,数字取8、16、32代表位数,决定了整型数据的表示范围,此外还有32F、64F代表32位、64位精度浮点数;从通道数来看分别有C1——C4,表示了1——4个通道,二者结合就是基本的数据类型。 所谓不同通道,实际上是列数增加,例如RGB图像就是三个通道,即将三个数字看成是一个统一数据。 1234567891011Mat m1(4, 3, CV_8SC1,256);cout<<m1; //单通道// [127, 127, 127;// 127, 127, 127;// 127, 127, 127;// 127, 127, 127]Mat m2(4, 3, CV_8SC2,256);cout<<m2; //双通道,第一 ...
C++ 11 新特性总结(三):多线程编程
发表于2024-12-13|CPP|C++高阶•C++11 新特性
C++11 多线程相关 在Linux操作系统:进程与线程中介绍了Linux系pthread创建和管理线程基本方法,在C++11中,又引入了五个头文件支持多线程编程,它们分别是<thread>、<future>、<atomic>、<mutex>和<condition_variable>,带来不少实用的新特性,值得学习。其函数基本使用标准命名空间std,不赘述。 thread thread用于创建一个线程,其定义了相关构造函数,具体如下: 12345678thread() noexcept; //无参构造函数,一个空线程template <class Fn, class... Args>explicit thread(Fn&& fn, Args&&... args); //有参构造,线程+参数thread(const thread&) = delete; //禁用拷贝构造thread(thread&& x) noexcept; //移动构造函数 thre ...
OpenCV C++记录(一):基于MinGW的环境搭建
发表于2024-12-12|OpenCV|C++高阶•OpenCV
g++环境搭建 暂时采用VsCode与g++环境做基础测试,g++编译器采用mingw。 现在发现sourceforge好像没有挂载mingw下载了,或者我找不到入口,还是找到一个项目可以下载: mingw下载,一般的C++项目posix或win32都无所谓,其差别在于多线程环境,但是OpenCV建议线程模式是posix,那就听劝,我下载的是2022.8.22的x86_64-12.2.0-release-posix-seh-rt_v10-rev0.7z,其他版本自行甄别。 解压,将文件夹的bin目录加入环境变量,Vscode搜C++/C配置Ui,配置对应的编译器路径(为了生成c_cpp_properties.json),搜task选择编译器任务(为了生成task.json),就能得到VsCode编译C++环境。(这部分以前没有接触过的建议CSDN查详情)。 验证:cmd输入g++ -v会输出对应编译器信息,或者验证VsCode是否能够正常编译代码。 OpenCV环境 对mingw和VsCode而言OpenCV需要自己用cmake编译,而如果是Visual Studio则 ...
设计模式(一):观察者模式
发表于2024-12-10|设计模式|C++高阶•设计模式
观察者模式 观察者模式是一种一对多的行为型设计模式,面向的需求是观察者A对B的变化高度敏感,B发生变化时需要及时做出处理。涉及的角色有: 抽象通知者/抽象被观察者(Subject):将任意数量的观察者保存在一个容器中,提供一个接口增删观察者; 具体通知者/具体被观察者(Concrete Subject):在内部情况发生变化后,向注册过的所有观察者发生通知; 抽象观察者(Observer):定义更新接口,在通知者变化时能够通知自己; 具体观察者(Concrete Observer):具体实现更新接口,在通知者状态变化时做出处理行为; 特点 通知者/被观察者只有一个,观察者可有多个,观察者关心通知者的变化; 信息传递是单向的,通知者发送消息,观察者接受信息; 信息通过类似回调函数的机制进行传输,通知者状态变化调用更新函数,无需观察者定期轮询; 缺点: 通知者逐个调用观察者函数接口,当对象很多时通知效率和实时性变低; 当观察者和观测目标存在循环依赖,系统无法正常使用; 观察者模式没有机制表明观察对象具体的变化,只是知道对象发生变化。 模 ...
C++ 11 新特性总结(二):匿名函数、function&bind
发表于2024-12-07|CPP|C++高阶•C++11 新特性
C++11匿名函数 本文记录了匿名函数基本使用,并且引入函数指针、回调函数相关知识,介绍如何简洁地在C++11后使用function、bind等,在普通、成员函数实现回调,并且解决以往在仿函数、匿名函数函数指针无法实现问题。 定义一个匿名函数: 1auto add = [](int a,int b)->int{return a+b;}; 左侧是自动推导类型和函数名,右侧结构是: 1234[捕获外部变量](参数列表)->返回值类型{函数体}//其中"->返回值类型均可省略",因为匿名函数的返回值可以直接推导,因此:auto add = [](int a,int b){return a+b}; 捕获外部变量 匿名函数的基本结构和普通函数都是类似的,例如参数列表、函数体、函数名等,优化了自动推导类型,需要理解的只有这个外部变量的捕获,因为匿名函数的产生,C++函数更容易写出嵌套写法,因此有了捕获外部变量的问题,常见的是来自外层函数的局部变量等。 基本含义标识是: 1234567891 ...
1…345…12
avatar
Eden
不做前端所以博客不漂亮,纯免费授权码来自公众号:归零者星的日与夜
文章
114
标签
43
分类
35
Follow Me
公告
文章任何错误、疏漏、建议麻烦请联系博主qq邮箱2436444815@qq.com
最新文章
C++ 11 新特性总结(五):tuple元组类型2025-07-02
【sem_timedwait问题解决】系统时间向前跳变导致sem_timedwait长久阻塞2025-06-30
boost库开发笔记(二):boost::asio异步网络编程2025-06-15
C++ 11 新特性总结(四):enable_from_this/shared_from_this2025-06-12
boost库开发笔记(一):boost::json使用与序列化2025-06-10
分类
  • C20
  • C++ Qt开发7
  • C/C++14
  • CPP18
    • C++ Generic Programming3
    • C++ boost库开发2
  • FPGA2
    • verilog2
标签
Modern C++ Design Markdown语法 CMake Effective C++ C++高阶 数据结构与算法 MathType快捷键 Git基本使用 Linux扩容 3D目标检测 Stanford CS144 C++ Qt Qt网络编程 C++ Generic Programming OpenCV json序列化 C++基础 设计模式 ASIO异步编程 线程池 Protobuf 计算机网络理论 高等数学 格式化输出 MCU开发 C++11 新特性 Linux Private Content CSAPP boost库笔记 Vivado IP核 数据库 内存管理理论 奇奇怪怪的实现 引导程序 vim使用 网络编程 ZeroMQ 信号与系统 进程与线程
归档
  • 七月 20251
  • 六月 20256
  • 五月 20253
  • 四月 20254
  • 三月 20256
  • 二月 20255
  • 一月 20257
  • 十二月 20248
网站资讯
文章数目 :
114
本站总字数 :
488.5k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Eden
框架 Nodejs|你忘掉理想 只能忙于生活吗
粤公网安备 44010602011738号|粤ICP备2023072610号
搜索
数据库加载中