OpenCV3图像处理基础
本专栏通过opencv3常用API入手,使用C++编程实现常见图像处理操作,如空间域、频率域像素处理,图像空间,图像滤波等
CleMints
Attachment to Code
展开
-
【资源分享】VS2015+cmake+opencv3.4/opencv_contrib3.4编译装载好的库文件
1、前言学习OpenCV避免不了使用特征描述子如SIFT/Surf、三维重构、脸部识别等功能,这些功能在opencv官方全部放在了opencv_contib模块,这是个扩展模块:针对一些未授权(申请专利)、性能不稳定或功能性较弱的图像模块。虽然最新版本OpenCV4.2已将专利过期的SIFT算法移入主模块,但是对于想使用双目立体匹配算法、结构光等新的算法及有专利权未过期算法的同学需要使用Cmake自行编译。参考Blog:1、opencv3.0中contrib模块的添加2、win7x64+vs2017原创 2020-08-01 11:34:44 · 430 阅读 · 1 评论 -
特征检测Task01-Harris角点检测
目录1、前言2、角点3、Harris角点检测3.1 原理3.2 Harris角点性质4、基于python-opencv的实现1、前言在图像处理与计算机视觉邻域,特征点(Feature points),也被称为关键点(Key points)、兴趣点(Interset points),是三大图像特征之一。在传统CV图像处理过程中,被大量用于物体识别、图像识别、视觉跟踪、三维重建等领域。利用提取的特征点不仅可以有效表现图像的属性和行为,而且减小了内存,提高了图像处理的效率。常用的特征点检测算子有Harris角原创 2020-06-24 17:48:32 · 359 阅读 · 0 评论 -
OpenCV实现图像卡通化
一、前言今天介绍一个有趣的demo,结合之前图像空域滤波和边缘检测的知识,实现图像卡通化,通过实现的过程,可以发现几种图像边缘检测和差异和图像滤波的性质。Demo来自《Mastering OpenCV with Practical ComputerVision Projects》(目前没见到中文版),可以在网上下载Ebook。附Github地址:https://github.com/MasteringOpenCV/code二、图像卡通化实现原理解析实现原理:图像卡通化的过程,实际上是对图像的内原创 2020-05-12 14:33:59 · 5711 阅读 · 1 评论 -
OpenCV绘图函数总结与应用
目录1、前言2、基本绘图函数3、原子图绘制4、多边形绘制+最小外接矩形5、鼠标绘图+最小外接矩形1、前言图像处理中经常用到基本图形的绘制,比如直线、圆、矩形,在上一文中在直方图绘制中使用了OpenCV的line()函数来绘制直方图,不仅如此,基本图形在很多大型项目中也会频频使用,比如物体识别中,就需要绘制矩形来框选物体所在区域作为候选区,方便后续特征识别处理,本文通过介绍OpenCV基本绘图函数,如line()、Rectangle()等,来完成原子图绘制,另外拓展两个小demo绘制任意多边形并求最小原创 2020-05-10 00:05:54 · 649 阅读 · 0 评论 -
OpenCV灰度直方图绘制的两种方式
一、前言直方图(Histogram)是对数据进行统计的一种方法,也是直观表现数据分布特征的一种表现方式。在数字图像分析过程中,通过图像的灰度、梯度、方向和颜色等特征属性的分布直方图我们能更客观分析图像的某些特征,对直方图的分布进行处理(如重排、区间映射等),往往能达到我们想要的视觉效果,比如:对灰度直方图进行均衡化处理,扩散灰度区间,可以有效调整图像对比度,以达到图像增强的目的,所以在传统低光照...原创 2020-05-07 23:56:15 · 5540 阅读 · 1 评论 -
OpenCV图像遍历的三种方式
一、三种图像遍历方式与理解 在上一篇Blog中,介绍了使用基础图像容器Mat创建图像矩阵的六种方式,当我们使用创建的Mat矩阵进行图像处理时,需要对Mat矩阵中像素点进行遍历操作,图像像素点的遍历是任何图像处理算法必不可少的执行步骤。在OpenCV中提供了3种图像遍历的方法:.at()函数访问.ptr函数获取行指针逐行访问iterator迭代器访问这三种方式在访问速度上有所差异,...原创 2020-05-06 00:27:48 · 4999 阅读 · 1 评论 -
OpenCV基础图像容器-Mat用法总结
这里写目录标题一、前言二、概述三、Mat对象创建四、C++实现Mat图像矩阵创建一、前言OpenCV的API库在最开始时一直是基于C接口构建的,使用C语言结构体指针IplImage*存储图像,需要繁琐的内存管理,如果创建了IplImage指针,使用完成后不release掉的话就会造成内存泄漏,使用起来极为不便!辛运的是,OpenCV2.0版本中引入了新的C++接口,通过类进行自动内存管理,并定...原创 2020-05-04 23:55:48 · 1230 阅读 · 3 评论 -
计算机视觉基础-形态学滤波
Task07 OpenCV框架实现形态学滤波一、前言二、形态学概述三、基本形态学操作3.1腐蚀3.2膨胀四、高级形态学操作4.1开闭运算4.2形态学梯度4.3黑帽顶帽五、基于OpenCV的C++代码实现一、前言图像形态学滤波是图像滤波的一个重要分支,与之前介绍过的空间域滤波(方框滤波、高斯滤波、中值滤波)以及图像边缘提取过程中的滤波相同的是,他们都是通过滤波算子掩膜计算图像(中心)像素点的过程...原创 2020-05-03 17:50:27 · 9576 阅读 · 2 评论 -
计算机视觉基础-图像边缘检测
Task06 OpenCV框架实现常用边缘检测方法一、前言二、边缘检测的原理和理解2.1 边缘检测的定义2.2 Sobel算子2.3 Canny算子2.4 Laplace算子三、基于OpenCV的C++代码实现一、前言图像的特征可分为三种类型:(1)边缘、(2)角点、(3)区域,其中图像的边缘没有明确的定义,一般是指:两个具有不同灰度的均匀图像区域的边界称为边缘。一般来说,图像边缘信息主要集中...原创 2020-04-30 22:50:31 · 3207 阅读 · 0 评论 -
计算机视觉基础-图像分割(阈值化)
Task05 OpenCV框架实现基于阈值化的图像分割一、前言二、阈值化图像分割2.1原理2.2OTSU(最大类间方差法)2.3自适应阈值分割法2.4最大熵阈值分割算法三、基于OpenCV的C++代码实现一、前言图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的说就是在一副...原创 2020-04-28 23:04:45 · 5489 阅读 · 1 评论 -
计算机视觉基础-图像滤波
Task03 OpenCV框架实现图像滤波一、前言二、图像滤波概念与解析2.1图像滤波概念2.2空域滤波2.3方框(盒状)滤波2.4均值滤波2.5高斯滤波2.6中值滤波2.7双边滤波三、基于OpenCV的C++代码实现一、前言说到滤波,第一时间想到在数字通信中的信号滤波,通常在频率域处理连续信号可以滤除特定波段的频率,比如,允许通过低频信号通过而限制高频的低通滤波器,允许高频信号通过而限制低频...原创 2020-04-27 11:34:13 · 1977 阅读 · 0 评论 -
计算机视觉基础-图像色彩空间转换
Task03 Opencv框架实现色彩空间转换一、前言二、几种常用彩色模型2.1彩色模型概念2.2RGB彩色模型2.3CMYK色彩模型2.4YUV色彩模型2.5YCbCr2.6HSV2.7HSI2.8彩色变换公式三、基于OpenCV的代码实现一、前言说到色彩,我不禁想起白居易的一首诗,也是自己非常喜欢的一首诗:暮江吟暮江吟暮江吟一道残阳铺水中,半江瑟瑟半江红。一道残阳铺水中,半江瑟瑟半江红。...原创 2020-04-25 23:32:32 · 2014 阅读 · 0 评论 -
计算机视觉基础-图像仿射变换
Task01 OpenCV框架与图像仿射变换一、仿射变换原理1.1仿射变换过程1.2坐标系与变换矩阵二、仿射变换的种类与特点2.1仿射变换种类2.2仿射变换特点2.3仿射变换相关函数仿射函数翻转函数缩放函数三、基于OpenCV的代码实现一、仿射变换原理1.1仿射变换过程百度词条定义为:仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。...原创 2020-04-23 23:37:41 · 3432 阅读 · 0 评论 -
计算机视觉基础-图像插值算法
Task01 OpenCV框架与图像插值算法线性插值1、单线性插值1、双线性插值待续插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入线性插值1、单线性插值线性插值是一种针对一...原创 2020-04-21 19:00:35 · 1686 阅读 · 0 评论