自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nuc_Sheryl的博客

分享快乐

  • 博客(139)
  • 收藏
  • 关注

原创 图像配准

#include "registration.h"#include <QDebug>#include <opencv2/opencv.hpp>#include <opencv2/xfeatures2d.hpp>#include <iostream>using namespace cv;using namespace cv::xfeat...

2019-03-17 08:58:51 335

原创 dp训练1.2-01背包

上篇文章的优化以及启发思维#include <iostream>using namespace std;const int Num = 1e3+20;int dp[Num];int va[Num];int vo[Num];int main(){ int t; int n, v; cin >> t; while (t--...

2019-03-12 11:14:40 198

原创 dp训练1-01背包

题目链接#include <iostream>using namespace std;const int Num = 1e3+20;int dp[Num][Num]; //dp[i][j]表示前i个容量为j的最大价值int va[Num];int vo[Num];int main(){ int t; int n, v; cin >&...

2019-03-12 10:22:25 184

原创 递归训练2-棋盘问题

题目链接#include <iostream>using namespace std;const int N = 10;char c[N][N];int row[N];int col[N];int res;int dfs(int, int, int);int n, k;int main(){ while ((cin >> n >&...

2019-03-04 23:29:56 182

原创 递归训练1.2-N皇后(被大神作死)

#include <iostream>using namespace std;int con[8] = {-1, -1, -1, 1, 1, -1, 1, 1};const int N = 15;int c[N][N];int ans[N];int n;int row[N][N];int col[N][N];int bev[N][N];int fun(int...

2019-03-01 23:32:45 127

原创 递归训练1-N皇后

#include <iostream>using namespace std;int con[8] = {-1, -1, -1, 1, 1, -1, 1, 1};const int N = 15;int c[N][N];int ans[N];int n;int fun(int, int, int);int res;int main(){ for (int...

2019-03-01 16:32:01 131

原创 递归小白-三维

#include <iostream>using namespace std;const int N = 2;int c[N][N][N];int fun(int, int, int);int res = 0;int main(){ for (int i=0; i<N; i++) { for (int j=0; j<N; j...

2019-02-27 22:59:43 133

原创 递归小白-二维

#include <iostream>using namespace std;const int N = 3;int c[N][N];int fun00();int fun01(int);int fun02(int);int fun10(int);int fun11(int);int fun12(int);int fun(int, int);int res ...

2019-02-27 22:42:20 119

原创 递归小白

#include <iostream>using namespace std;int c[35];int fun();int fun2(int);int fun3(int);int func(int);int res = 0;int main(){ for (int i=0; i<20; i++) { c[i] = 0; ...

2019-02-27 17:21:37 176

原创 (12)构造函数

main.cpp#include <iostream>#include <string>#include "student.h"using namespace std;/*内存分区:(按照用途划分)栈区:int x = 0;int *p = NULL;即定义变量存储在栈区,内存由系统进行控制,无论是分配还是回收都不需要程序员来关心堆区:int *p...

2018-09-18 16:33:31 158

原创 (11)类外定义

//同文件类外定义:#include <iostream>#include <string>using namespace std;class student{public: void setName(string _name); string getName(); void setGender(string _gender); string get...

2018-07-18 17:38:22 314

转载 (10)数据封装与类内定义

#include <iostream>#include <string>using namespace std;//面向对象的基本思想:谁做什么//代码:将所有的数据操作转化为成员函数的调用// 换句话说对象在程序中的所有行为都通过调用自己的函数来完成//用函数来封装数据成员://1.可以对传入进来的参数起到条件限制的作用//2.只读属性(不希望外界...

2018-07-18 17:26:38 191

原创 (9)string

#include <iostream>#include <string>using namespace std;/*string 类型初始化string对象的方式:string s1 s1为空串string s2("ABC") 用字符串字面值初始化s2string s3(s2) 将s3初始化为s2的一个副本string s4(n, 'c')...

2018-07-18 17:25:45 191

翻译 (8)类和对象

#include <iostream>using namespace std;//注释部分会有点乱,是因为直接从vs粘贴过来的,复制到vs里就可变得正常//类 | class TV//目的不同抽象出的信息不同 | {//选择性的暴露 访问限定符public protected private | public:// ...

2018-07-18 17:23:21 158

转载 (31)基于距离变换与分水岭的图像分割

/**基于距离变换与分水岭的图像分割*什么是图像分割(Image Segmentation) 1:图像分割(Image Segmentation)是图像处理最重要的处理手段之一 2:图像分割的目标是将图像中像素根据一定的规则分为若干(N)个cluster集合,每个集合包含一类像素。 3:根据算法分为监督学习方法和无监督学习方法,图像分割的算法多数都是无监督学习方法 - KM...

2018-07-18 17:19:31 1069

转载 (30)点多边形测试

/**点多边形测试* 概念介绍 测试一个点是否在给定的多边形内部,边缘或者外部*API介绍 cv::pointPolygonTest pointPolygonTest( InputArray contour,// 输入的轮廓,一个轮廓一个轮廓的做 Point2f pt, // 测试点 测试的像素点的位置...

2018-07-18 17:18:47 482

转载 (29)图形矩

/**图像矩(Image Moments) 几何矩 中心矩 中心归一化矩 二值图像提取的对象,对那个对象获得轮廓,对那个轮廓进行几何矩的计算,那么我们就得到轮廓的特征,一般计算二阶,三阶,弧矩* API介绍与使用-计算矩cv::moments moments( InputArray array,//输入数据 轮廓 ...

2018-07-18 17:18:05 487 1

转载 (28)轮廓周围绘制矩形框和圆形

/**轮廓周围绘制矩形框和圆形框 基于轮廓绘制出来的矩形或者椭圆 先把图像转换为灰度图像,然后模糊,模糊的目的是为了后面进行一个二值化的时候可以降低噪声,让二值化更精准一些二值化处理通过 threshold阈值这个方法实现或者当你输入一幅灰度图像给Canny同样可以帮你进行一个最后得出一个二值化的边缘图像,基于二值图像我们 可以发现边缘findcontour,它...

2018-07-18 17:17:27 876

转载 (27)凸包

/**凸包 凸包是在轮廓提取的基础上再走一步,轮廓就是那些点,要把这些轮廓全部包含在一个里面就需要一个凸包把它包含在里面* 概念介绍 什么是凸包(Convex Hull),在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。 正式定义 包含点集合S中所有点的最小凸多边形称为凸包。*检测算法 - Grah...

2018-07-18 17:16:42 218

转载 (26)轮廓发现

/**轮廓发现* 区别于轮廓和边缘的概念,轮廓也是有一定梯度层次的,有大的小的不同的轮廓*轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓发现结果。* API介绍:findContours发现轮廓 在灰度图像上进行轮廓发现 cv::findContours( InputOutputArray bi...

2018-07-18 17:15:51 228

转载 (25)模板匹配

/**模板匹配(Template Match) 模板也是一幅图像,是一个小的子图象,要在大的图片里找到与小图片完全相同或者相似的图片,这个过程就叫做匹配,匹配的 过程就叫做模板匹配 1:模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。 2:所以模板匹配首先需要一个模板图像T(给定的子图像) 3:另外需要一...

2018-07-17 19:08:02 207

转载 (23)像素重映射

/* *像素重映射 先想一下数学上面的映射的概念 简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。API介绍cv::remap Remap( InputArray src,// 输入图像 没有要求 OutputArray dst,// 输出图像...

2018-07-17 19:07:04 463

原创 (7)内存管理(new、delete)

#include <iostream>using namespace std;//内存管理//内存的本质是资源,由操作系统掌管内存资源//申请/归还内存资源就是内存管理//申请内存:运算符new:int*p = new int;int *arr = new int[10];/*申请内存需要判断是否成功int *p = new int[1000];if (NULL ...

2018-07-17 19:05:09 187

转载 (6)函数特性(函数参数默认值、函数重载、内联函数)

#include <iostream>using namespace std;//函数参数默认值 实参覆盖默认值//有默认值的参数必须在参数表的最右端//声明的时候写默认值,定义的时候不写默认值,这样所有的编译器都能通过//无实参则用默认值,否则实参覆盖默认值//函数重载 名称相同参数可辨//在相同作用域内//用同一函数名定义的多个函数 参数个数和参数类型不同 这...

2018-07-17 19:04:31 168

翻译 (5)const

#include <iostream>using namespace std;#define X 3 //const相比于define的好处是有类型的,在编译的时候要检查语法错误void fun(const int &a, int const &b){ //a = 10; 报错 //b = 20; 报错}int main(){ int cons...

2018-07-17 19:03:32 171

转载 (4)引用

//引用是变量的别名,而且引用不能单独存在#include <iostream>using namespace std;typedef struct A{ int x; int y;}co;void fun(int &a, int &b){ int c = 0; c = a; a = b; b = c; return;}int m...

2018-07-17 19:02:54 104

转载 (3)命名空间

#include <iostream>using namespace std;namespace a{ int x(1); void fun() { std::cout << "a" << endl; }}namespace b{ int x(2); void fun() { cout << "b" <&a

2018-07-17 19:01:46 120

翻译 (2)进制转换

#include <iostream>using namespace std;int main(){ int x(10); cout << oct << x << endl; cout << dec << x << endl; cout << hex <&

2018-07-17 19:00:50 220

原创 (1)bool类型

#include <iostream>using namespace std;int main(){ bool istrue = false; cin >> istrue; if (istrue) { cout << "true" << endl; } else { cout << "false"

2018-07-17 18:59:47 364

翻译 (24)直方图

/* * 直方图均衡化*什么是直方图(Histogram) 假设有图像数据8x8,像素值范围0~14共15个灰度等级,统计得到各个等级出现次数及直方图如下图 图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。 是图像的统计学特征。 ...

2018-07-17 18:55:10 321

翻译 (22)霍夫圆检测

/* *霍夫圆检测 霍夫变换进行圆检测 几何中圆心坐标和半径表征一个圆, 从平面坐标到极坐标转换三个参数C(x0, y0, r), 固定r,在0-360度空间的时候只有x0, y0这两个变量,就是a跟b, 其中x0, y0是圆心,那么在圆心处有最大值,霍夫空间累计最大值在圆心处 假设平面坐标的任意一个圆上的点...

2018-07-16 17:46:53 1268

翻译 (21)霍夫变换-直线

/* *霍夫变换-直线 霍夫变换-直线检测 霍夫变换是图像处理当中很经典的算法,通过霍夫变换可以实现传统的几何规则的几何图像的一个检测,从直线到圆扩展到其他的一些不规则的或者稍 微有点规则的几何形状检测都可以通过霍夫变换来实现,最经典的就是霍夫变换直线检测和圆检测,在opencv当中提供了API *霍夫直线变换介绍 Hough ...

2018-07-16 17:46:03 361

翻译 (20)Canny边缘检测

/* *Canny边缘检测 *Canny算法介绍 Canny是边缘检测算法, 在1986年提出的,是一个很好的边缘检测器,很常用也很实用的图像处理方法 五步in cv::Canny 1.高斯模糊-GaussianBlur 所有图像的模糊都是对图像进行降噪,把细微的可能有影响结果的点都给去掉,免得它影响最终算法的结果 2.灰度转换...

2018-07-16 17:45:12 703

翻译 (19)Laplace算子

/* * Laplace算子 求导,通过二阶导数获得图像边缘,这也是一个卷积理论的延伸,可以通过卷积求取图像的边缘,Laplace算子也是一个卷积核 理论: 前一节我们学习了 Sobel 算子 ,其基础来自于一个事实,即在边缘部分,像素值出现”跳跃“或者较大的变化。 如果在此边缘部分求取一阶导数,你会看到极值的出现。 你会发现在一...

2018-07-16 17:43:55 370

翻译 (18)sobel算子

/**Sobel算子*卷积的应用-图像边缘提取 边缘是什么 -是像素值发生跃迁的地方,是图形显著特征之一,在图像特征提取、对象检测、模式识别等 方面都要重要的作用 如何捕捉/提取边缘 -对图像求它的一阶导数 delta = f(x) - f(x-1), delta越大,说明像素在x方向...

2018-07-16 17:43:08 879

翻译 (17)处理边缘

/* *处理边缘 图像卷积的时候边界像素不能被卷积操作,原因在于边界像素没有完全跟kernel(卷积核)重叠,所以当3*3滤波时候 有1个像素的边缘没有被处理,5*5滤波的时候有2个像素的边缘没有被处理 在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3*3在四周各填充1个像素的边缘,这样就确保图像的边缘被处理, 在卷积处理之后再去掉这些边缘。...

2018-07-16 17:42:15 216

翻译 (16)自定义线性滤波

/* *自定义线性滤波 前言:之前讲过的掩膜,什么一般的滤波,一般的模糊如中值模糊,高斯模糊,这些内容从本质上来讲它都属于一个概念就是卷积 所以我们在介绍自定义线性滤波的时候其实我们就是在介绍卷积,前面讲的是卷积的第一功能,卷积可以模糊一幅图像,可以降低 图像的噪声,我们模糊的目的就是降噪,降低噪声 *卷积概念: 卷积其...

2018-07-16 17:41:06 266

翻译 (15)基本阈值操作

/* * 基本阈值操作 *图像阈值(threshold) 阈值是什么?简单点说是把图像分割的标尺(图像的一个像素值),这个标尺是根据什么产生的,阈值产生算法或者阈值类型(Binary segmentation) 阈值产生的算法比较复杂,opencv给出两种阈值的算法供我们使用, 如果不用这两种算法就可以自己指定一个阈...

2018-07-16 17:39:53 513

翻译 (14)图像金字塔-上采样与降采样

/* * 图像金字塔-上采样与降采样 图像金字塔:比如1*1的图像,2*2的图像,4*4的图像,8*8的图像 ,把图像按照从小到大的顺序放在空间上的位置,如果从上向下形状就跟古埃及金字塔一样了 我们也可以把这些不同的看成图像的分辨率,从上向下看分辨率不断增加,增加分辨率的过程就可以看成向图片进行采样的过程,采样愈多图像分辨...

2018-07-16 17:38:47 1069

翻译 (13)形态学操作应用-提取水平与垂直直线

/**形态学操作应用-提取水平与垂直直线 有很多种方法都可以提取到水平和垂直的线,但是要找出一种最适合你项目运用的,贴近你项目实际需求包括软件和硬件的需求的计算的速度等等各方面能符合你要求的一个提取的方法还是很不容易的 *原理方法 图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感,另外一些对象不敏感,这样就会让敏感的对象改变 ...

2018-07-16 17:36:07 485

空空如也

空空如也

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

TA关注的人

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