-
linux 驱动开发笔记
最近在移植PCIe卡驱动到linux系统上,下面是移植过程中查阅资料的记录。
-
opencv中的图像形态学处理
什么是图像形态学?这里的图像形态学指的是数学上的图像形态学。
-
opencv的中值滤波和双边滤波
非线性滤波
中值滤波和双边滤波都是非线性滤波
nonlinear filtering
,那什么是非线性滤波呢?非线性滤波是一类不遵循线性叠加原理的图像处理方法,其输出结果不能简单低表示为输入像素的加权和。它的核心特点是根据局部像素值的关系动态调整处理方式,因此能更好地保留边缘、纹理等非线性特征,同时有效去除特定类型的噪声。
特点
- 非加权平均,不依赖固定卷积核(如高斯滤波的固定权重),而是根据像素邻域的实际分布动态计算(如取中值、最大值等)。
- 边缘保留,多数非线性滤波能保护锐利边缘不被模糊(如双边滤波、中值滤波)。
- 适应性, 处理方式随图像局部特征变化(如噪声类型、纹理复杂度)。
常见的线性滤波:均值滤波(mean filter / box filter),高斯滤波(gaussian filter),拉普拉斯滤波(Laplacian filter),Sobel 滤波
- 非加权平均,不依赖固定卷积核(如高斯滤波的固定权重),而是根据像素邻域的实际分布动态计算(如取中值、最大值等)。
-
Windows驱动开发笔记
本文记录了我在开发Windows驱动时的一些心得体会。
-
更新svn的externals到指定版本
svn的 externals 功能用于将代码库中其他位置的代码链接到本目录中来。最近我尝试将代码回退到某个历史版本时发现 externals 链接过来的代码并没有回退到历史版本,仍然是库中最新的版本。
-
高斯函数在图像处理中的应用
高斯模糊是一种常见图像模糊算法。本文介绍其算法原理和在图像处理中的操作细节。
-
数据库使用的数据模型
根据数据库所使用的数据模型来划分,数据库可以分为层次数据库、网状数据库、关系数据库。
它们分别对应数据库的三种数据模型:层次模型,网状模型,关系模型。
目前最常用的也就是关系型数据库。 -
面向对象设计中的五大原则
最近在看软考资料,正好遇到了一个与面向对象设计有关的题目,把五大原则拿出来好好复习一下。将五大原则分别是单一职责原则、开闭原则、里式替换换则、接口隔离原则、依赖倒转原则,将它们的英文首字母取出来就能组成单词
SOLID
,这些原则的主要宗旨是使软件维护和软件拓展变得更加容易。 -
在C++中使用有符号数作为容器下标
在C++20中引入了
std::span
特性,针对容器下标和容器大小该使用有符号数signed
还是无符号数unsigned
,大家开始讨论。综合来看,在旧标准的设计中使用无符号数作为容器下标是有历史原因的;但是在后来的使用中也发现了许多弊端。最终,在C++20标准下
std::span
仍然使用了无符号数作为大小和下标类型。但是讨论的过程很有意思,也让我在后续的开发中思考有符号数和无符号数的使用。 -
记录一次TCP异常分析
最近在排查一个TCP异常现象,有很多收获,加深了我对TCP的理解,在这里记录一下。
-
将界面窗口置顶显示
最近需要实现一个功能,在启动第二个程序实例时将主界面窗口置顶显示。界面程序是基于Qt开发的,在Windows操作系统上实现窗口置顶需要一些特殊的处理。
-
Qt连接匿名函数的踩坑记录
今天在调试代码时遇到了一个有趣的问题,值得仔细思考。