自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图像处理的常用空间滤波算法

五种常见的模糊图像滤波算法:均值滤波、高斯滤波、中值滤波、双边滤波。均值滤波用滤波掩膜确定的领域内像素的平均灰度值去代替图像的每个像素点,目的是为了“减噪”。缺点:存在不希望的边缘模糊效应。高斯滤波高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器。在对图像进行卷积的时候其实是对图像进行点操作,用所求像素点周围的像素通过模板的权值计算得到新的像素值。而图像形状的不同也就代表了不同的参数,从而得到不同的模板。二维高斯分布:

2022-05-04 17:02:50 3607

原创 关于为什么图像要减去二阶微分算子——拉普拉斯算子才有锐化效果

关于拉普拉斯算子的基本概念不做赘述,其掩膜表达式如下:对应的数学公式是:如果对拉普拉斯算子取反,也就相当于对上式的二阶微分取反,掩膜表达式如下:而要产生锐化的效果,原图像应该遵循如下运算表达式:也就是说一定是:原图像 - 二阶微分= 锐化后的图像。实际操作之后,也发现,如果不是减去二阶微分的话,图像不仅不会锐化,反而还会模糊。为什么必须减去二阶微分如果分析以上线性图像的二阶微分会发现:(1)如果原图像减去二阶微分,再加上将图像像素限制在0~255范围内...

2022-04-23 23:46:52 818

原创 链接动态库的两种方式

方法一:通过gcc编译命令指定“-l+库名”来链接动态库 假设我编写了一个函数,函数体如下:#include "stdio.h"void test_a(){ printf("this is in test_a...\n");}在makefile中将如上函数封装成动态库的命令为:libtest.so:test_a.c gcc $^ -fPIC -shared -o $@通过执行make libtest.so,就能够得到动态库libtest.so。当我想要在另外一个程序

2022-02-21 15:21:07 4717 1

原创 C++中的抽象方法

我们想要实现多态,于是有了虚方法的概念,方便我们通过基类的指针去调用子类的同名方法。但这样还不够,有的时候并不能在基类中去定义一个适用于所有子类的方法,或者我们希望该方法对于不同的子类有截然不同的实现,而在基类中我们只需要一个空实现就可以了,于是此时就引入了抽象方法的概念。抽象方法抽象方法就是只有声明而没有实现的方法,一般抽象方法都是基类中的方法,并且与虚方法同时存在,语法如下:virtual void test() = 0;在函数声明的末尾加上“ = 0” 就表示这是一个抽象方法,告诉编

2022-02-06 15:48:27 1925

原创 C++中基类析构函数为什么总是虚方法

当我们采用如下方式直接定义一个子类的对象的时候,我们知道由于子类继承于基类,所以在main函数结束返回时,程序会先调用子类的析构函数,再调用基类的析构函数。int main(){ SubClass c; return 0;}但为了实现C++的多态,我们经常要用一个基类的指针指向一个子类的数据:BaseClass *c = new SubClass;这时编译器会认为指针是基类的,因此在我们释放指针时,程序就不会运行子类的析构函数,而只运行了基类的析构函数。而如果在子类的析构函数中

2022-02-06 13:54:52 339

原创 C++中子类方法重载问题

C++中子类重载了基类的方法,但是时常得不到想要的预期的结果。比如如下代码:#include <iostream>using namespace std;class BaseClass{public: void test();};class SubClass : public BaseClass{public: void test(string name);};void SubClass::test(string name){ cout <&l

2022-02-05 21:27:27 437

原创 C++中的虚方法

C++允许我们定义一个基类的指针指向子类的数据空间:BaseClass *c = new SubClass;但当子类中存在覆盖基类的方法时,我们想用指针调用子类的方法,就会出现问题,结果是调用了基类的方法,比如下面的代码:/***虚方法*/ #include <iostream>using namespace std;class BaseClass{public: void test();};class SubClass : public BaseCla

2022-02-05 20:25:20 1003

原创 C++中类的静态方法为什么不能访问一般成员变量

C++中类的静态方法为什么不能访问一般成员变量。

2022-02-05 16:46:03 923

原创 C++中类的静态变量和静态方法的使用

/***静态属性和静态方法*/#include <iostream>using namespace std;class Pet{public: int pubA; int pubB; Pet(); ~Pet(); int petCount(); static int petCountStatic(Pet &pet); static int pubCount; private: int priv...

2022-02-05 16:14:34 1750

空空如也

空空如也

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

TA关注的人

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