自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++sort函数及哈希容器

哈希函数说完了,接下来是桶,哈希地址就是桶的地址,用来存储键或者键值对,通常一个桶内只存一个元素,效率比较高,但是难免会产生哈希冲突,桶还起到处理哈希冲突的作用,常见的是链地址法,即桶采用链表结构。都提供了默认的哈希函数和相等比较函数,这是可以更改的,通常是通过一个类来实现,实测了lambda表达式和仿函数,均可使用,lambda表达式需要借用decltype。首先明确一件事,哈希是指将键值通过哈希函数运算得到哈希地址,映射通常指键值对pair。2.参数的类型为要排序的元素的类型。无序映射和无序集合相似。

2025-01-15 09:36:06 270

原创 TCP/IP协议浅析

由于UDP不建立连接,因此减少了开销和延迟,但同时也意味着它不保证数据的可靠传输。网络层:主要工作是定义网络地址、区分网段(IP协议)、子网内MAC寻址(ARP协议/地址解析协议)、对于不同子网的数据包进行路由(路由协议)。对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了。、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。TCP/IP传输协议是一个四层的体系结构,包括应用层、传输层、网络层和数据链路层。

2024-11-18 09:19:07 605

原创 关于电脑的ip地址

IP地址为公网地址,即可以直接与互联网通信的地址,而IPv4地址为分配给局域网中的设备的地址,这个地址是可变的,这个地址就是私网地址。上述三类地址是可以复用的私网地址,即我有一个公网,就像上述IP地址,我可以组建一个私网,在这里我可以给我的设备分配任意一个私网地址。以C类IP地址为例,一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。注:IP地址和公网地址并不是等号关系,IPv4地址和私网地址也不是等号关系,上述只是为了便于阅读。

2024-11-11 17:06:35 560

原创 python traceback

traceback主要用于try...exception...,用于堆栈跟踪,打印错误信息。

2024-11-01 11:07:36 229

原创 pycharm qt开发

ui设计可通过可视化desinger完成,功能实现就正常写法即可,常见的ui连接功能的方法有使用button的clicked和toggled等连接函数。最后 ,通过下面这行代码启动应用程序的主事件循环,它负责监听和处理所有的事件,比如鼠标点击、键盘输入、窗口重新绘制请求等。提供了整个图形界面程序的底层管理功能,我们必须在任何界面控件对象创建前,先创建它。pyqt5中也有相关控件,但亲测不通用,因为装了pyqt5的rcc被卡了好久。

2024-10-17 11:19:04 242

原创 C++函数作为参数

通过创建一个类并重载()来创建函数对象,主要用于STL容器和算法。相对于直接函数调用,函数对象有两个优势。第一个是函数对象可包含状态。第二个是函数对象是一个类型,因此可用作模板参数。函数可以在某些情况下替换STL模板容器或算法中的函数对象作为参数。的最后一个参数是返回布尔值(一个。第二个模板函数是模板函数对象。使用时以函数名作为实参。

2024-09-13 21:03:43 410

原创 C++智能指针

C++ 智能指针思路,创建对象后让系统负责在正确的时间将其删除。单独的垃圾回收器不在后台运行;按照标准 C++ 范围规则对内存进行管理,以使运行时环境更快速更有效。将智能指针声明为一个自动(局部)变量。(不要对智能指针本身使用 new。在智能指针构造函数中将原始指针传递至 new。在类型参数中,指定封装指针的指向类型。智能指针是在堆栈上声明的类模板。允许智能指针删除对象。

2024-09-12 21:52:27 195

原创 python正则表达式

正则表达式(Regular Expressions)是一个强大的字符串处理工具,它们使用一种特殊的语法来描述字符模式,这些模式随后可以用于匹配、搜索、替换或分割字符串。使用re匹配字符串,包括re.match、re.search和re.findall。

2024-09-02 13:41:24 187

原创 C++ STL

C++ 标准模板库()是C++模板类和函数的集合。有点像更加具体的“数据结构”

2024-08-28 18:49:10 1941

原创 C++的匿名函数及引用

C++ 支持把引用作为参数传给函数,这比传一般的参数更安全。当作为值传递时,我们相当于拷贝了一份参数,但使用引用传递,相当于拿源数据进行操作。比如上述代码中的值引用会将x的值变为20。capture:它定义了Lambda表达式体内部可以访问哪些外部作用域中的变量,以及这些变量是如何被捕获的。一般来说,使用下述方式创建引用,上述方式&x有点像取地址,所以给出了捕获指针的对比代码供参考。匿名函数可以将它们赋给变量和作为参数传递,还可以像函数一样对其求值。引用也可以作为返回值,和正常返回值使用方法相同。

2024-08-27 19:23:14 352

原创 OpenGL裁剪空间浅析

对于视口变换,就是把裁剪空间的结果映射到屏幕空间,此时有一个关键的问题,根据上文可知,裁剪结果宽高比和作为参数的宽高比互为倒数,当我把一个正方形空间的裁剪结果映射到具有某个宽高比(这个宽高比将作为参数2)的屏幕上时,裁剪结果刚好恢复为一开始设置坐标值的时候的比例,避免产生形变。首先对于参数1的角度,角度越大,平截头体的面积越大,能看到的范围就越大,裁剪空间会根据透视除法映射到[-1,1],可视为一个正方形空间,虽然对于每个向量可能有不同的w分量,但x、y和z分量的比值不变。理解的很含糊,未来会改(也许)

2024-08-23 09:53:42 872

原创 C++ const,this指针

个人理解:可以有其他指针也指向8,但不能改变8的值。个人理解:指针指向的位置不变,但内容可以变。

2024-08-20 11:10:33 188

原创 python 多线程(包括QT多线程)

Qt Signal(主界面改动建议在主线程执行,所以可以开辟一个线程发送信号,在主界面中接受信号并执行主界面改动)Qt中多线程可以实现对主界面展示的实时更新,在非主线程中进行绘制操作,理论上可以逐帧展示在主界面,但不建议。Lock(防止两个线程同时访问同个数据,两个线程都需要加锁)Thread(新建线程)

2024-08-15 16:34:21 248

原创 python logging

根记录器的名称在输出中打印为 'root'。指定记录器将处理的最低严重性日志消息。从记录器对象中添加和删除处理器对象。可以添加或移除记录器对象中的过滤器。不要直接实例化记录器,可以通过执行。,意味着只会追踪该级别及以上的事件。自定义时间格式方法:去掉了毫秒部分。常见formatter占位符如下。创建一个日志记录器。

2024-08-14 11:23:22 300 1

原创 python常用数据结构(包括深拷贝内容)(numpy)

list中list_[n](多维,list_[n]是list类型)可视为某一块内存的别名,但numpy_[n](多维,numpy_[n]是numpy.ndarray类型)是内存本身,对其的修改将会直接展示在内存上。numpy类型尽量使用封装方法吧,不然会产生很多问题,刚测试发现numpy_[1]和numpy_[0]地址相同,太奇怪了,不要拿numpy类比list!一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。拷贝父对象,不会拷贝对象的内部的子对象。

2024-07-15 16:47:08 278

原创 python,QOpenGLWidget类的使用入门

3.索引缓冲对象(IBO):VBO中的顶点有可能重合,为节约内存,可以通过索引获得VBO中顶点进行绘图,其将索引存储在IBO中,实现与VBO基本一致。1.着色器设计:着色器是使用一种叫GLSL的类C语言写成的,opengl要求使用者必须手动实现顶点着色器和片段着色器,设计后需要进行编译。2.顶点缓冲对象(VBO):顶点缓冲对象用来存储输入顶点,实现流程包括,创建、绑定、将输入数据转移至顶点缓冲对象。4.顶点数组对象(VAO):用来将VBO,IBO合并,便于使用,还包括了对VBO内数据的解析(链接顶点属性)

2024-06-18 17:47:45 382 1

原创 灰度变换和插值

stretchlim生成一个低限和高限,可以用到imadjust中。1.插值方式(虽然不知道这和彩色变换有什么关系,不过插值方法很有用)2.使用直方图均衡增强对比度。3.调整图像强度值或颜色图。

2024-05-21 14:00:23 477 1

原创 图像复原(维纳滤波)

上述计算函数所需参数时使用了noise和f,若已知这些,计算的意义何在?使用函数deconvwnr可实现维纳滤波。采用下述代码生成退化图像g。

2024-05-09 14:53:59 349

原创 正态(高斯)分布

如果 x 是一个数组,那么返回的结果也将是一个与 x 相同大小的数组,每个元素对应于对应位置上的概率密度函数值。标准差越小,数据或随机变量的取值越集中在均值附近,分布形状越尖锐;概率密度值区别于概率,概率密度函数给出的是在某个取值处的概率密度,而不是具体的概率值。1.均值:指正态分布的取值均值,在图像中,x轴上的每个点代表一个可能的取值。这些取值围绕着高斯分布的均值展开,距离均值越远,取值的概率密度越小。对于正态分布的图像,X轴表示取值范围,Y轴表示此取值的概率密度值,正态分布图像积分值均为1.

2024-04-23 15:12:01 818

原创 高频强调滤波和直方图均衡化

由较窄灰度级范围内的灰度表征的图像是直方图均衡化的理想选择。此滤波器滤波后得到的是具有0均值的非零图像,所以在滤波时。高频强调滤波和直方图均衡化相结合,是一种较为常用的方法。dftfilt和gscale均为自定义M函数。其实还有好多不清晰的地方,希望未来可以弄懂。其中a是偏移量,b是乘数,HP为高通滤波器。此方法既突出了高频部分,又增强了低频部分。高频强调滤波可用公式。

2024-04-19 16:48:14 369 1

原创 频域滤波器

空间域滤波器:使用公式生成频率域滤波器:两种方法生成仅考虑二维图像矩阵,两种滤波器都是正常的矩阵,唯一不同的是频率域滤波器要求大小需要paddedsize扩充,而空间域没有这个要求个人理解:频率域中的滤波器可以以图像形式拿出来看看,而空间域的滤波器作为一个矩阵来看更加清晰。

2024-04-18 15:23:44 288 1

原创 cv2.warpPolar,Qlabel.setAlignment,cv2.rotate,shape

Qt.AlignLeft(水平方向靠左对齐) 、Qt.AlignRight(水平方向靠右对齐)、Qt.AlignCenter(水平方向居中对齐)、Qt.AlignJustify(水平方向调整间距两端对齐)、Qt.AlignTop(垂直方向靠上对齐)、Qt.AlignBottom(垂直方向靠下对齐)、Qt.AlignVCenter(垂直方向居中对齐)cv2.WARP_INVERSE_MAP:代表此时是由矩形变成圆。(x / 2, x/ 2)是圆心。(x,x)是处理后的图像大小。0.7*x是圆的半径。

2024-04-17 13:52:26 346 1

原创 DFT滤波的基本步骤

上述DFT滤波可使用一个M函数实现,本函数中的h为滤波器函数,满足以下条件1.h为频域函数2.假定滤波器函数大小已被适当调节returnelseend。

2024-04-03 16:22:35 1606 1

原创 傅里叶变换(基础&重点)

傅里叶变换最初用于求解热传导方程。

2024-03-27 16:24:16 312 1

原创 基于matlab初识空间滤波器

使用imnoise对原始图像进行添加噪声,用法如下。

2024-03-26 10:16:43 438 1

原创 【考研】清华1995年的题目

懒得打题目,思路就是普通思路,不过代码和搜到的不太一样,首先指出代码的两个语法错误,一处是第11行,一处是26行else忘记括号了考研党,懒得改了如有错误,请各位佬指正!

2022-11-16 23:28:15 118 1

原创 【考研】2023王道数据结构第五章思维拓展

用伪码写的,写了好久,带入数据试了一下好像没啥问题,如有错误,欢迎指正。(真的写了好久)

2022-10-21 08:03:32 463 1

空空如也

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

TA关注的人

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