自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 论文笔记:低照增强Zero-DCE

Zero-DCE(Zero-Reference Deep Curve Estimation);通过训练一个轻量级的网络(DCE-NET),来预测一个像素级的,高阶的曲线;并通过该曲线来调整图像。该曲线必须是逐像素的,单调的,并且是可微分的。发表于CVPR2020具有如下的特点: 不需要构造训练对:通过精心设计的non-reference loss function实现。因为不需要构造训练对,所以训练数据比较容易获得,因此可以有效的避免过拟合。 有效:图像增强可以通过一个非线性的map

2021-09-12 11:24:01 3015 1

原创 HoG特征

① 梯度计算梯度强度的计算:梯度方向的计算:经过计算,可以得到图像的梯度强度图和梯度方向图② cell划分对图像进行cell划分,如每8x8的像素分成一个cell③ block划分对图像进行block的划分,2x2的cell为一个block,在划分block的时候,有一个cell的overlap,如下图中,黑色的框表示cell,红色的框分别表示第一个block和第二个block:④ 在cell内计算梯度直方图以方向进行统计,有两个注意点:1..

2021-09-04 11:03:56 199

原创 图像逆滤波

1. 概述图像的退化是一个很常见的现象,现实中,很可能因为成像系统的缺陷,或者一些认为的干扰导致图像退化。对于退化,可以用如下模型表示:空域:频域:其中h/H表示退化模型,而/N表示噪声。如果我们知道退化模型的化,对现有的图像做一次逆操作,就可以复原出原始的图像。即:空域:(这里的/表示卷积的逆操作,因为不知道用什么表示,暂时用这个表示)频域:先看空域的表达,卷积的...

2018-10-05 11:45:22 2248 1

原创 直方图匹配

1. 概述直方图匹配也叫做直方图规定化,是将某个图像的灰度分布按照某个特定的模式去变换的操作。我们常常用到直方图均衡化,直方图均衡化是在整个灰度阶范围内对图像进行拉升;但是有的时候,这种整个范围内的拉升也许并不是最好的,我们可能会需要其按照某个灰度分布去进行拉升,也就需要用到上面提到的直方图均衡化/规定化。  2. 步骤使用到直方图匹配的场景,我们必须知道目的图像,或者目的...

2018-10-03 10:39:51 24002 5

原创 典型排序算法之:冒泡排序/直接插入排序/希尔排序/选择排序/快速排序

// sort_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "stdio.h"#include "stdlib.h"void swap(int&a, int &b){ int temp = b; b = a; a = temp;}void print_arr(int* arr, int...

2018-09-02 22:20:44 773

原创 学习OPENCV笔记(3): 第六章 图像变换

1 概述在第五章,我们学习了图像处理;其中的大多数操作都是对图像增强,修改等;使之成为和源图像类似的全新的图像;比如我们可以用平滑消除图像的噪声,用阈值化得到图像的二值图像,或者缩放图像。在本章中,我们要学习的是图像的变化;是将图像转变为另外一种表达方式;比如使用傅里叶变换,将图像从空域转变为频域;转变之后新图像的每个单独像素表示原始输入图像的频谱分量而不是我们通常所考虑的空间分量。 ...

2018-09-02 18:03:39 384

原创 numpy基本操作

1 构造方法1. 使用list构建:>>> import numpy as np>>> arr = np.array([1, 2, 3])>>> print(arr, arr.dtype)[1 2 3] int32从例子中,我们可以看到,使用dtype来查看数组中元素的类型。 2. 创建一个全0/全1的数组&g...

2018-09-02 12:25:39 637

原创 Windows配置OpenCV

不同的系统版本,VS版本,OpenCV版本,配置OpenCV可能会有些许差异;但是总的来说需要配置如下的5步:1. 下载OpenCV,并解压。2. 配置dll目录到系统环境变量中。3. 配置头文件目录到工程的包含目录中。4. 配置lib库的目录到工程的库目录中。5. 配置需要依赖的lib,到外部依赖项中。 不同的环境下配置的有差异,下面以我当前的环境来举例,其实大同小异...

2018-07-30 12:15:18 7737

原创 学习OPENCV笔记(2): 第四章 图像处理

1 平滑处理平滑处理也称作模糊处理(blurring),其用途很多,最常见的是用来减少图像上的噪声或者失真。目前,OpenCV支持五种平滑处理,他们都通过 cvSmooth 函数实现:CVAPI(void) cvSmooth( const CvArr* src, CvArr* dst, int smoothtype CV_DEFAULT(C...

2018-07-29 23:20:32 1074

原创 学习OPENCV笔记(1):第三章 初探OPENCV

1 什么是OPENCVOpenCV是一个C/C++编写的,开源的计算机视觉库;OpenCV也提供了Python,Ruby,MATLAB的接口。OpenCV主要关注实时应用,所以,执行速度快是他的一个主要的设计目标。OpenCV还提供了MML(Machine Learning Library)机器学习库,该机器学习库侧重于统计方面的模式识别和聚类(clustering)。处理在计算机视觉领域...

2018-07-23 08:37:21 338

原创 Java从入门到精通学习笔记:Swing基础

1. 概述swing组建通常被称做“轻量级组建”,它完全由Java编写,不依赖操作系统语言。他的类继承关系如下图:JComponnt是swing组件存放的位置,常用的组件如下: JFrame 框架 JDialog 对话框 JOptionPane 对话框 JBu...

2018-07-20 08:30:30 1921

原创 JAVA基础:线程

Java的多线程有两种方式:继承自java.lang.Thread类,线程的操作通过重载run()方法实现。因为java的单继承属性,当类需要扩展其他类,可以实现runnable接口。同样runnable接口也是重载run()方法实现具体的操作。实际上Thread函数也是实现的runnable接口。Java的多线程一般有三种实现方法:1.继承Thread类class ExtendTread e

2017-11-26 11:57:47 249

原创 JAVA基础:SWING中JTextField限制只能输入数字

JAVA基础:SWING中JTextField限制之能输入数字在Swing中,使用JTextField创建输入框。在实际的应用中,我们可能对输入框有各种限制;比如限制字符的长度,或者限制只能输入数字等。之前的想法是通过KeyListener来达成,监视keyTyped;当按键时,对按下的键进行处理。但是此种方法弊端太明显:在中文输入法中几乎没有什么作用,并且如果是拷贝进去的也校验不住。这种场景使用P

2017-11-22 22:40:09 16980 5

原创 UML类图

UML类图UML类图简介类的表示类之间的几种关系EA简介类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,用来显示系统中的类,接口以及他们之间的静态结构和关系的一种静态模型。类的表示类图有三个基本组件:类名、属性、方法,一个类在类图中用一个有三个区域的矩形表示,其中第一个区域表示类名,第二个区域表示类中包含的属性,第三个区域包括类的方法。当然,第二个区域和第三个区域并

2017-07-22 10:56:54 625

原创 适配器模式

适配器模式适配器模式简介适配器模式中的几个角色UML图代码实现总结简介我们在写代码时,偶尔会由这样的苦恼:两个不同类需要进行相同或者类似的动作,或者复用一些公用的接口。在现实生活中我们同样会遇到相似的情况,好比说你买了个港版或者其他国家版本的手机,他的充电口就和我们国家的标准接口并不一样。这个时候,我们就需要加一个接口转化器,就可以充电了。此时,不需要修改自己家里的插座,也不需要重新买一个

2017-07-16 16:26:13 455

原创 OSPF协议的LSA

OSPF协议的LSAOSPF协议的LSA概念介绍路由器LSARouter LSA网络LSANetwork LSA网络汇总LSANetwork Summary LSAASBR汇总LSAASBR Summary LSA自治系统外部LSAAutonomous System External LSA组成员LSAGroup Membership LSANSSA外部LSANSSA Externa

2017-07-16 14:51:09 2658

原创 ABC模块的使用

ABC(Abstract Base Class)模块提供了在Python中定义抽象类的方法。在Python中没有强的类型检查;因此在执行操作的时候,并不需要所操作的对象是严格继承自某一个基类的。只要由相关的属性,就可以访问。但是由的时候,我们会有需求:一些类定义共同的接口,否则抛出异常;虽然也可以通过hasattr()来实现,但是终归是很麻烦。而ABC模块就可以帮我们实现这个功能。所以,Python

2017-07-15 13:39:56 2031

原创 FR算法

FR算法将所有的结点看做是电子,每个结点收到两个力的作用:1. 其他结点的库伦力(斥力)2. 边对点的胡克力(引力)。那么在力的相互作用之下,整个布局最终会称为一个平衡的状态。算法结构: 1. 给所有的点一个初始的随机位置 2. 计算每个点收到其他点的库伦力以及所有边对该点的胡克引力,得到该点受到的最终力。 3. 根据步骤2计算的力得到位置的偏移,调整布局中点的位置。 4. 迭代2,

2017-06-28 23:43:44 4192

原创 OSPF协议之:DR和BDR的选举

在OSPF协议中,根据hello包中的字段来进行DR和BDR的选举。Hello包的报头如下:在选举的过程中,主要用到的字段为上表中高亮的字段。选举的过程如下所述:前提: 1 一个网元在所有邻居进入two way状态之后进行DR和BDR的选举。 2 优先级为0的路由器不具备选举资格。 3 路由器优先的比较方法为首先比较优先级,优先级越高的越优先;在优先级相等的前提下,比较Router ID。Ro

2017-06-28 23:42:47 6821

原创 设计模式学习:抽象工厂模式

抽象工厂模式是有多个抽象产品时,使用的工厂模式。抽象工厂模式可以向客户端提供接口,使用户在不指定具体产品的情况下,创建多个产品族中产品的对象。下面我们用一个例子来说明抽象工厂模式,再下面的例子中,有两个产品族:中餐和西餐。产品族中有产品主食和甜点:#include "stdafx.h"#include <iostream>using namespace std;// 抽象产品接口class St

2017-05-26 22:15:26 306

原创 设计模式学习:建造者模式

建造者模式将一个复杂对象的构建和他的表示分离,使得同样的构造过程可以创建不同的表示。假设我们现在的产品是汉堡包,那么我们制作的过程永远是先加一片面包,加一片馅,再加一片面包。如果我是做牛肉堡,就是加的牛肉的馅,如果是做鸡肉堡,就是加的鸡肉的馅;但是者三个步骤是没得跑的。那么这个时候,我们就可以使用建造者模式。建造者模式有几个重要的角色。 builder:给出要给通用的接口,用来规范产品的各个组成成

2017-05-26 00:31:09 260

原创 scrapy初探:写一个简单的爬虫

outline: 0 简介 1 工程的建立: 2 简单的爬虫 3 执行爬虫 4 文件下载 5 总结0 简介 scrapy是一个爬虫框架。 该框架能够让我们集中在爬虫的核心处理上。但是,框架带来的缺点就是不够灵活。1 工程的建立 前提:已经安装好python以及scrapy 在cmd中,进入相应的目录,使用命令:scrapy startproject spider_n

2017-05-13 12:53:48 3468

原创 朴素贝叶斯

朴素贝叶斯分类器是一个简单有效的分类模型。贝叶斯定位公式为:P(A|B) = P(B|A)*P(A)/P(B) 其中P(A|B)表示在B发生的前提下A发生的概率。公式具体就不多说了,下面举一个例子来说明。那么现在假设食堂来了10个四川人,8个人要了夫妻肺片。2个人要了酸辣土豆丝。来了10个湖北人;7个人要了酸辣土豆丝,3个人要了夫妻肺片。现在又来了一个四川人,预测它会点一个什么菜呢?

2017-05-01 15:22:14 390

原创 最大流之Dinic算法

Dinic是一个分层的增广路算法。Dinic中分层的概念定义为:到原结点的最小距离相同的点为同一层。 假设有拓扑如下:如果源点为1,宿点为4;拓扑可以分成4层。 首先,回想E-K算法是怎么算的:使用DFS在1到4之间计算一条增广路,并计算残量网络;再进行循环。我们观察计算第一次增广路(1->2->3->4)之后的残量网络,橙色的表示反向弧。 从图中可以看出,其实这个时候1->2->5->4

2017-04-09 16:10:17 672

原创 最短路径最大流的SAP算法

EK算法的时间复杂度为O(VE^2),效率比较低。使用最短路径最大流的SAP算法,时间复杂度为O(EV^2),速度快很多。EK算法使用BFS计算增广路径,耗费时间长。SAP算法在引入了距离标号,加快了计算求增广路径的过程。下面介绍一些概念: 距离标号:每个结点到宿结点所需要经过的弧数量的下界。 允许弧:d[u] = d[v] + 1,并且c[u, v]>0的边称为允许弧。每次都走允许弧可以保证走

2017-03-19 15:56:11 1397

原创 最大流的增广路算法(EK)

首先介绍算法中的一些基本概念: 容量:c(u,v)。表示边 最大可以承载的流量。 流量:f(u,v)。表示边 中已经有多少流量。 残量:r(u,v)。表示边 还可以走多少的流量会达到饱和。r = c – f。为了理解最大流算法,可以形象的将网络中的各个边联想成水管。那么c和f表示水管内的最大水流量以及水流量。r表示这个水管还能够增加多少单位的水流量。而对于一条路径,其能够增加的最大水流量

2017-03-18 11:12:31 4553 1

空空如也

空空如也

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

TA关注的人

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