自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《OpenCV3编程入门》学习笔记11 特征检测与匹配(一) SURF特征点检测

第11章 特征检测与匹配11.1 SURF特征点检测11.1.1 SURF算法概览1.定义:  SURF,SpeededUp Rebust Features,加速版的具有鲁棒性的特征算法,是尺度不变特征变换算法(SIFT)的加速版2.特征:  采用了harr特征以及积分图像的概念,加快了运行时间11.1.2 SURF算法原理1.构建Hessian矩阵构造高斯金字塔尺度空间(1)H...

2019-03-11 20:44:43 3421

原创 《OpenCV3编程入门》学习笔记10 角点检测(三)亚像素级角点检测

10.3 亚像素级角点检测10.3.1 亚像素级角点检测原理1.原理:  假设起始角点在实际亚像素角点附近,检测所有q-p向量,下面两种情况点p梯度与q-p向量的点积均为0:(1)点p附近图像均匀,即点p处梯度为0(2)边缘的梯度与沿边缘方向的q-p向量正交(向量与其正交向量点积为0),如下图:            则可以在p点周围找到很多组梯度以及相关向量q-p,令其点积为0,求解方...

2019-01-17 17:12:58 785 1

原创 《OpenCV3编程入门》学习笔记10 角点检测(二)Shi-Tomasi角点检测

10.2 Shi-Tomasi角点检测10.2.1 Shi-Tomasi角点检测:goodFeaturesToTrack()函数1.定义:  Harris算法改进,若矩阵M行列式的值与M的迹中较小的一个大于最小阈值,则会得到强角点2.作用:  确定图像的强角点,可用来初始化一个基于点的对象跟踪操作3.函数原型:void goodFeaturesToTrack(InputArray ...

2019-01-15 19:13:02 742

原创 《OpenCV3编程入门》学习笔记10 角点检测(一)Harris角点检测

第10章 角点检测10.1 Harris角点检测10.1.1 角点1.图像特征类型:(1)边缘(2)角点(感兴趣点)(3)斑点(感兴趣区域)2.角点定义:(1) 一阶导数(灰度的梯度)的局部最大所对应的像素点(2)两条及两条以上边缘的交点(3)图像中梯度值和梯度方向的变化速率都很高的点(4)角点处的一阶导数最大,二阶导数为0,指示了物体边缘变化不连续的方向3.角点检测算法:...

2019-01-15 16:32:55 794

原创 《OpenCV3编程入门》学习笔记9 直方图与匹配(五)模板匹配

9.5 模板匹配基本思想:  在一幅图像中寻找与另一幅模板图像最匹配的部分,通过在输入图像上滑动图像块,对实际的图像块和输入图像进行匹配。9.5.1 模板匹配:matchTemplate()函数1.作用:  匹配出和模板重叠的图像区域2.函数原型:void matchTemplate(InputArray image, InputArray templ, OuputArray re...

2019-01-12 19:10:27 665

原创 《OpenCV3编程入门》学习笔记9 直方图与匹配(四)反向投影(back projection)

9.4 反向投影(back projection)9.4.1 反向投影原理1.基本思想:  反向投影中储存的数值代表了图像中该像素属于区域的概率,计算某一特征的直方图模型,使用模型寻找图像中存在的该特征2.基本原理:(1)对图像中每个像素(p(i,j)),获取色调数据并找到该色调/饱和度在直方图中的bin的位置(2)查询模型直方图中对应的bin的数值(3)将此数值存储在新的反射投影图...

2019-01-09 13:01:10 243

原创 《OpenCV3编程入门》学习笔记9 直方图与匹配(三)直方图对比

9.3 直方图对比9.3.1 对比直方图:compareHsit()函数1.作用:  比较两幅直方图2.函数原型:(1)double compareHist(InputArray H1,InputArray H2, int method)(2)double compareHist(const SpareMat& H1, const SpareMat& H2, int ...

2019-01-08 18:24:29 306

原创 《OpenCV3编程入门》学习笔记9 直方图与匹配(一&二) 图像直方图概述&直方图的计算与绘制

第9章 直方图与匹配9.1 图像直方图(Histogram)概述1.作用:  在每个兴趣点设置一个有相近特征的直方图所构成的标签,通过标记帧与帧之间显著的边缘、颜色、角度等特征的统计变化,来检测视频中场景的变化。2.概念:  图像直方图是图像中像素强度分布的图形表达方式,统计了每一个强度值所具有的像素个数,并将统计结果分布于一系列预定义的bins中。直方图中,横坐标的左侧为纯黑较暗区域,...

2019-01-05 20:32:17 634

原创 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(六)图像修补

8.6 图像修补基本思想:  利用已经被破坏区域的边缘,即边缘的颜色和结构,繁殖和混合到损坏的图像中,达到图像修补的目的。8.6.1 实现图像修补:inpaint()函数1.作用:  用来从扫描的照片中清除灰尘和划痕,从静态图像或视频中去除不需要的物体2.函数原型:void inpaint(InputArray src, InputArray inpaintMask, Output...

2019-01-04 16:41:43 556

原创 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(五)分水岭算法(watershed algorithm)

8.5 分水岭算法(watershed algorithm)1.基于拓扑理论的数学形态学的分割方法。2.基本思想:把图像看作测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,分水岭变换得到的是输入图像的集水盆图像,集水盆边界形成分水岭(输入图像的极大值点)。3.计算过程:一个迭代标注过程,包括排序过程和淹没过程,先对每个像素的灰度级进行从...

2019-01-04 15:07:51 470 1

原创 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(四)图像的矩

8.4 图像的矩从一幅数字图形中计算出来的矩集,通常描述了该图像形状的全局特征,并提供了大量关于该图像不同类型的几何特性信息,如大小、位置、方向、形状等(1)一阶矩与形状有关(2)二阶矩显示曲线围绕直线平均值的扩展程度(3)三阶矩关于平均值的对称性的测量(4)二阶矩和三阶矩可以导出一组共7个不变矩,不变矩是图像的统计特性,满足平移、伸缩、旋转均不变的特性。8.4.1 矩的相关函数1....

2019-01-03 19:42:50 355

原创 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(三)使用多边形将轮廓包围

8.3 使用多边形将轮廓包围8.3.1 将轮廓包围的多边形函数1.返回外部边界:boundingRect()函数(1)作用:返回指定点集最外面的边界矩形(四个顶点)(2)函数原型:Rect boundingRect(InputArray points)2.寻找最小包围矩形:minAreaRect()函数(1)作用:返回指定点集可旋转的最小面积的包围矩形(四个顶点)(2)函数原型:Ro...

2019-01-02 23:38:56 581

原创 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(二)寻找物体的凸包

8.2 寻找物体的凸包8.2.1 概念1.给定二维平面上的点集,将最外层点连接起来构成的凸多边形。2.理解物体形状或轮廓的一种比较有用的方法是计算一个物体的凸包,然后计算其凸缺陷(convexity defects)例如,图中A-H区域是凸包的各个”缺陷”:                3.函数:convexHull()函数4.函数原型:void convexHull(Input...

2018-12-22 12:11:03 637

原创 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(一)查找并绘制轮廓

第8章 图像轮廓与图像分割修复8.1 查找并绘制轮廓8.1.1 寻找轮廓:findContours()函数1.作用:在二值图像中寻找轮廓2.函数原型:void findcontours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Po...

2018-12-21 20:53:32 658

原创 《OpenCV3编程入门》学习笔记7 图像变换(五 )直方图均衡化

7.5 直方图均衡化7.5.1 概念1.图像增强处理,图像的像素灰度变化是随机的,直方图图像高低不齐,用一定算法使直方图大致平和,通过拉伸像素强度分布范围来增强图像对比度2.均衡化处理后的图像只能是近似均匀分布,图像动态范围扩大了,本质是扩大了量化间隔,减小了量化级别,因此,原来灰度不同的像素处理后可能变得相同,形成一片相同灰度区域,各区域之间有明显的边界,从而出现了伪轮廓3.源图像对比度...

2018-12-20 20:53:43 335

原创 《OpenCV3编程入门》学习笔记7 图像变换(四 )仿射变换

7.4 仿射变换(Affine Transformation)7.4.1 概念1.仿射变换,放射映射,在几何中,一个向量空间按进行一次线性变换(乘以一个矩阵)并接上一个平移(加上一个向量),变换为另一个向量空间的过程,保持了二维图形的平直性和平行性。2.变换形式:(1)旋转,rotation(2)平移,translation(3)缩放,scale3.矩阵表示:            使...

2018-12-20 20:45:40 275

原创 《OpenCV3编程入门》学习笔记7 图像变换(三 )重映射

7.3 重映射7.3.1 概念1.重映射是把图像中某位置的像素放置到另一图片指定位置的过程,通过重映射表达像素位置:                   g(x,y)=f(h(x,y))          g()是目标图像,f()是原图像,h(x,y)是作用于(x,y)的映射方法函数2.函数:remap()函数,根据指定的映射形式,将源图像进行重映射几何变换,基于以下公式:      ...

2018-12-19 22:35:42 262

原创 《OpenCV3编程入门》学习笔记7 图像变换(二 )霍夫变换

7.2 霍夫变换7.2.1 概述1.特征提取技术,运用两个坐标空间之间的变换将在一个空间中具有相同形状的曲线或直线映射到另一个坐标空间的一个点上形成峰值,从而把检测任意形状的问题转化为统计峰值问题,用于检测直线、曲线、圆、椭圆等。2.分类:(1)霍夫线变换(2)霍夫圆变换7.2.2 霍夫线变换1.原理:(1)直线在坐标空间的表示:  1)笛卡尔坐标系:斜率和截距(m,b)表示  2...

2018-12-19 16:30:50 531

原创 《OpenCV3编程入门》学习笔记7 图像变换(一)基于OpenCV的边缘检测

第7章 图像变换7.1 基于OpenCV的边缘检测7.1.1 边缘检测的一般步骤1.滤波:边缘检测算法主要基于图像强度的一阶和二阶导数,导数对噪声敏感,所以要滤波2.增强:确定图像各点邻域强度的变化值,将有显著变化的点凸显,可通过计算梯度幅值确定3.检测:某些特定应用中梯度值较大点不为边缘点,通过阈值化方法检测进行取舍7.1.2 canny算子1.主要评价标准:(1)低错误率:减少...

2018-12-16 01:54:44 1096

原创 大数加法分析及C语言实现(加数可为负数)

大数加法(加数可为负数)·分析:大数加法有如下几种情况:1.两数同号(1)同正:如,s1=11,s2=22;s1=0,s2=0(2)同负:如,s1=-11,s2=-222.两数异号(1)正数加负数:如,s1=11,s2=-91)s1的长度大于s2绝对值的长度:如,s1=11,s2=-92)s1和s2绝对值的长度相等但s1大于等于s2的绝对值:s1=106,s2=-104;s1=...

2018-12-12 16:27:36 3113 3

原创 《OpenCV3编程入门》学习笔记6 图像处理(七)阈值化

6.7 阈值化· 最简单的图像切割方法,剔除图像中像素高于或低于一定值的像素,用图像中每一个像素点的灰度值与选取的与之进行比较,做出判断· 涉及函数:Threshold()函数(基本阈值操作)和adaptiveThreshold()函数· 基本思想:给定一个数组和一个阈值,根据数组中的每一个元素的值是高于还是低于阈值而进行一些处理6.7.1 固定阈值操作:Threshold()函数1.作...

2018-12-11 21:59:19 279

原创 《OpenCV3编程入门》学习笔记6 图像处理(六)图像金字塔与图片尺寸缩放

6.6 图像金字塔与图片尺寸缩放6.6.1 图像金字塔1.图像金字塔是图像中多尺度表达的一种,主要用于图像分割,是一种以多分辨率解释图像的结构,通过梯次向下采样获得分辨率逐步降低的图象集合2.分类:(1)高斯金字塔(Gaussianpyramid):向下采样(2)拉普拉斯金字塔(Laplacianpyramid):从金字塔底层图像重建上层未采样图像,在数字图像处理中即是预测残差,可以对图...

2018-12-11 21:51:03 281

原创 Python学习笔记3 流程控制、迭代器、生成器

第3章 流程控制、迭代器、生成器3.1 选择语句1.语法:(1)if …else (2)if…elif…else2.注意:(1)每个条件后面要使用冒号:(2)使用缩进划分语句块(3)python没有switch -case语句3. Eg. 猜拳游戏3.2 循环语句1.for 循环(1)语法:for 变量 in 集合:  循环体代码else:  没有通过break退出循环,...

2018-12-11 00:11:08 130

原创 《OpenCV3编程入门》学习笔记6 图像处理(五)漫水填充

6.5 漫水填充(floodFill)6.5.1 漫水填充1.定义:一种用特定的颜色填充连通区域,通过设置可连通像素的上下限及连通方式达到不同填充效果2.基本思想:自动选中和种子点相连的区域(位于给定范围(从LowDiff到UpDiff)或在原始seedPoint像素值范围内),将该区域所有相似点填充指定的相同颜色3.作用:标记或分离图像一部分,从输入图像获取掩码区域4.封装函数:flo...

2018-12-10 18:52:51 397

原创 Python学习笔记2 基本数据类型

第2章 基本数据类型2.1 数字(Number)1.Python3支持int、float、bool、complex2.type()函数可用来查询变量所指对象类型>>>a=20>>>type(a)<class ‘int’>>>>Isinstan

2018-12-09 20:19:05 256

原创 《OpenCV3编程入门》学习笔记6 图像处理(四)形态学滤波(2):开运算、闭运算、形态学梯度、顶帽、黑帽

6.4 形态学滤波(2):开运算、闭运算、形态学梯度、顶帽、黑帽高级形态学变换,基于腐蚀与膨胀,利用morphologyEx函数实现6.4.1 开运算1.腐蚀后膨胀的过程,数学表达式:dst=open(src,element)=dilate(erode(src,element))2.作用:消除小物体,在纤细点处分离物体,并且在平滑较大物体的边界的同时不明显改变其面积6.4.2 闭运算1...

2018-12-09 15:01:58 620

原创 《OpenCV3编程入门》学习笔记6 图像处理(三)形态学滤波(1):腐蚀与膨胀

第6章 图像处理6.3 形态学滤波(1):腐蚀与膨胀6.3.1 形态学概述1.数学形态学(Mathematical morphology):建立在格论和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论。2.基本运算:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等...

2018-12-06 21:00:00 645

原创 Python学习笔记1 Python基础

第1章 Python基础1.1 Python概述及版本介绍1.Python是一种面向对象的解释型计算机程序设计语言(解释型语言源代码->解释器逐行解释每一句源代码)2.优点:高级语言、可移植性、可扩展性、可嵌入性缺点:速度慢、代码不能加密3.解释器:CPython、IPython、IronPython、Jython、PyPy4. Python 2与3对比:(1) Old: pr...

2018-12-04 23:29:30 337 1

原创 大数加法【HDU 1002】

大数加法模板一般的加法只要int类型的两数直接相加即可,大一点的数可以设为long long类型,而超过长整型的数则属于大数问题了,大数加法其实也比较简单,利用数组实现就可以啦:主要思想如下:(1)将大数以字符串形式输入,并转化为数组形式倒序存储(2)将两数组对应位相加,位数满10进1(3)判断最高位是否为0,输出结果数组代码实现:#include<stdio.h>#i...

2018-12-03 22:54:45 177

原创 《OpenCV3编程入门》学习笔记6 图像处理(二)非线性滤波:中值滤波、双边滤波

第6章 图像处理6.2 非线性滤波:中值滤波、双边滤波6.2.1 非线性滤波很多情况下,使用领域像素的非线性滤波会得到更好的效果,如在噪声是散粒噪声而不是高斯噪声,即图像偶尔会出现很大值时,高斯滤波效果不如中值滤波6.2.2 中值滤波(Median filter)1.滤波原理:基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,用像素点邻域灰度值的中值替代像素点的灰度值,让周围的像...

2018-12-03 22:02:35 457

原创 《OpenCV3编程入门》学习笔记6 图像处理(一)线性滤波:方框滤波、均值滤波、高斯滤波

第6章 图像处理6.1 线性滤波:方框滤波、均值滤波、高斯滤波6.1.1 图像滤波与滤波器1.图像滤波:在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制目的:(1)抽出对象的特征作为图像识别的特征模式(2)适应图像处理的要求,消除图像数字化时所混入的噪声要求:(1)不损坏图像的轮廓及边缘等重要信息(2)使图像清晰视觉效果好2.平滑滤波:消除图像中的噪声成分,低频增强的空间...

2018-11-30 17:23:56 525

原创 算法设计与分析第5章 回溯法(二)【回溯法应用】

第5章 回溯法5.2 应用范例1.0-1背包问题有n件物品和一个容量为c的背包。第i件物品的重量是w[i],价值是p[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。·算法设计:(1)解空间:子集树(2)算法调用递归函数Backtrack(3)可行性约束函数:(4)上界函数:当前包内物品重量(cw)+物品的选中情况(x[i])*物品的重量(w[i...

2018-11-16 18:31:36 1427

原创 算法设计与分析第5章 回溯法(一)【回溯法】

第5章 回溯法5.1 回溯法1.回溯法的提出 有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。2. 问题的解空间(1)问题的解向量:回溯法希望一个问题的解能够表示成一个n元式(x1,x2,…,xn)的形式。(2)显约束:对分量xi的取值限定。(3)隐约束:为满足问题的解而对不同分量之间施加的约束。(4)解空间:对于问题的一个实例,解向...

2018-11-16 11:37:40 4585

原创 《OpenCV3编程入门》学习笔记5 Core组件进阶(六)输入输出XML和YAML文件

第5章 Core组件进阶5.6 输入输出XML和YAML文件5.6.1 XML和YAML文件XML和YAML是使用非常广泛的文件格式,可以利用XML或者YAML式的文件存储和还原各种数据结构,还可以存储和载入任意复杂数据结构1.XML(Extensible Markup Language):可扩展标记语言,元标记语言,语义/结构化语言2.YAML(YAML Ain’t a Markuo ...

2018-11-15 19:03:00 342

原创 《OpenCV3编程入门》学习笔记5 Core组件进阶(五)离散傅里叶变换(DFT)

第5章 Core组件进阶5.5 离散傅里叶变换(Discrete Fourier Transform,DFT)5.5.1 离散傅里叶变换原理1.对一张图像使用傅里叶变换就是把它分解成正弦和余弦,将图像从空间域(spatial domain)转换到频域(frequency domain)2.理论基础:任一函数都可以表示成无数个正弦和余弦函数的和的形式3.二维图像的傅里叶变换数学公式表达:,...

2018-11-15 12:23:22 464 1

原创 《OpenCV3编程入门》学习笔记5 Core组件进阶(四)图像对比度、亮度值调整

第5章 Core组件进阶5.4 图像对比度、亮度值调整5.4.1 理论依据1.算子:一般图像处理算子都是一个函数,接受一个或多个输入图像,并产生输出图像2.算子一般形式:3.点操作(point operators):仅根据输入像素值计算输出像素值,这类算子包括亮度(brightness)和对比度(contrast)调整、颜色矫正(color correction)、变换(transfor...

2018-11-15 00:27:32 320

原创 《OpenCV3编程入门》学习笔记5 Core组件进阶(三)分离&合并颜色通道

第5章 Core组件进阶5.3 分离&合并颜色通道5.3.1 通道分离:split()函数1.作用:将一个多通道数组分离成几个单通道数组,公式:2.原型:(1)void split(const Mat& src,Mat* mvbegin); (2)void split(InputArray m,OutputArrayOfArrays mv);3.参数说明:(1)需要分离...

2018-11-15 00:20:01 378

原创 《OpenCV3编程入门》学习笔记5 Core组件进阶(二) ROI区域图像叠加&图像混合

第5章 Core组件进阶5.2 ROI区域图像叠加&图像混合5.2.1 感兴趣区域ROI(region of interest)1.定义ROI区域两种方法:(1)定义矩形区域Rect:指定矩形左上角坐标和矩形的长和宽(2)指定感兴趣行或列的范围Range:Range是从起始索引到终止索引的一段连续序列2. 示例:利用ROI实现图像叠加#include<opencv2/...

2018-11-14 23:37:36 244

原创 《OpenCV3编程入门》学习笔记5 Core组件进阶(一)访问图像中的像素

第5章 Core组件进阶5.1 访问图像中的像素5.1.1 图像在内存中的存储方式1.图像矩阵大小取决于通道数,矩阵中的子列个数与通道数相等。2.如果内存足够大,可以实现连续存储,有助于提升图像扫描速度,可以用isContinuous()判断矩阵是否连续存储。5.1.2 颜色空间缩减1.颜色空间缩减:将现有颜色空间值除以某个输入值,以获得较少的颜色数2.如,0~9范围的像素值为0,1...

2018-11-14 23:25:02 299

原创 算法设计与分析第4章 动态规划(二)【DP序列问题】

第3章 动态规划(二)【DP序列问题】3.2 DP序列问题(51nod的动态规划教程很不错,讲解很详细,以下分析来自51nod)1.矩阵取数问题给定一个m行n列的矩阵,矩阵每个元素是一个正整数,你现在在左上角(第一行第一列),你需要走到右下角(第m行,第n列),每次只能朝右或者下走到相邻的位置,不能走出矩阵。走过的数的总和作为你的得分,求最大的得分。分析:从起点到终点的最优路径上经过了...

2018-11-01 15:55:25 763

空空如也

空空如也

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

TA关注的人

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