![](https://img-blog.csdnimg.cn/20190619143510122.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
OPENCV从0到N
文章平均质量分 81
opencv学习笔记,基础原理简介,计算机视觉实战编程,项目内容分享
Arthur.AI
人工智能算法工程师,对深度学习,计算机视觉,嵌入式AI,人脸识别,自动驾驶技术感兴趣的一起来交流吧!
展开
-
【人脸目标追踪】卡尔曼滤波原理解析与人脸追踪实例
1.卡尔曼滤波简介卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。在很多工程应用(如雷达、计算机视觉)中都可以找到它的身影。同时,卡尔曼滤波也是控制理论以及控制系统工程中的一个重要课题。例如,对于雷达来说,人们感兴趣的是其能够跟踪目标。但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置原创 2022-03-06 18:40:53 · 6018 阅读 · 4 评论 -
opencv实战从0到N (20)——编译嵌入式版本Opencv
编译嵌入式版本Opencv1、解压opencv2.4.92、创建build目录,作为CMake编译arm版本的工作目录3、在X环境下,运行cmake-gui(如果没装的话,按照提示安装一个) 选择源代码目录 选择Build目录:点击Configure,保持generator为Unix Makefiles,选择Specify options fo...原创 2018-06-14 11:39:19 · 1605 阅读 · 0 评论 -
opencv实战从0到N (18)opencv_contrib模块编译 与 surf匹配测试
opencv实战从0到N (18)opencv_contrib模块编译 与 surf匹配测试同步知乎:中庸opencv_contrib模块编译1,首先opencv官网github下载opencv3.3.1 和 opencv_contrib3.3.1的源码,将它们放在同一目录下(不放也行,哈哈)2,使用CMake选择原opencv源文件目录,选择build目录,选择配置,可能会有相关...原创 2019-07-05 22:32:33 · 429 阅读 · 0 评论 -
opencv实战从0到N (17)- 选择性搜索(selective search)
opencv实战从0到N (17)- 选择性搜索(selective search)同步知乎:中庸选择性搜索(selective search)在目标检测时,为了定位到目标的具体位置,通常会把图像分成许多子块(sub-regions / patches),然后把子块作为输入,送到目标识别的模型中。分子块的最直接方法叫滑动窗口法(sliding window approach)。滑动窗口...原创 2019-07-05 22:30:47 · 779 阅读 · 0 评论 -
opencv实战从0到N (16)- 分水岭算法分割(抠图)
opencv实战从0到N (16)- 分水岭算法分割(抠图)同步知乎:中庸1,概述:分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔...原创 2019-07-05 22:29:12 · 543 阅读 · 0 评论 -
opencv实战从0到N (15)- grabcut分割(抠图)
opencv实战从0到N (15)- grabcut分割(抠图)同步知乎:中庸1.概述:GrabCut是一种基于图切割的图像分割方法。从围绕要分割的对象的用户指定的边界框开始,算法使用高斯混合模型估计目标对象和背景的颜色分布。这用于在像素标签上构建马尔可夫随机场,其具有优选具有相同标签的连接区域的能量函数,并且运行基于图切割的优化以推断它们的值。由于这个估计可能比边界框中的原始...原创 2019-07-05 22:27:51 · 770 阅读 · 0 评论 -
opencv实战从0到N (14)- 凸包算法 convexity defects
opencv实战从0到N (14)- 凸包算法 convexity defects同步个人知乎:中庸1,凸包算法(convex hull)凸包算法:其实很简单,就是用一个的凸多边形围住所有的点。就好像桌面上有许多图钉,用一根紧绷的橡皮筋将它们全部围起来一样。算法详细步骤:1. 找到所有点中纵坐标y最小的电,也就是这些点中最下面的点,记为p0。2. 然后计算其余点与该点的连线...原创 2019-07-05 22:26:42 · 941 阅读 · 0 评论 -
opencv实战从0到N (13)—— svm分类器训练
opencv实战从0到N (13)—— svm分类器训练同步个人知乎:中庸svm 分类器训练1,结合hog特征的svm分类器训练可以很好的对人体进行检测。HOG是一种梯度直方图特征,通过对图像分割成小的连通域区域,再对连通域区求梯度方向特征,由此特征构建的直方图来描述一副图像的特征。具体来说就是将梯度方向(0->360°)划分为9个区间,将图像化为16x16的若干个blo...原创 2019-07-05 22:25:01 · 1865 阅读 · 0 评论 -
opencv实战从0到N (12)—— Lab颜色空间与显著性分析
opencv实战从0到N (12)—— Lab颜色空间与显著性分析1,Lab空间:Lab色彩模型是由亮度(L)和有关色彩的a, b三个要素组成。L表示亮度(Luminosity),a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围。L的值域由0到100,L=50时,就相当于50%的黑;a和b的值域都是由+127至-128,其中+127 a就是红色,渐渐过渡到-128 a的时候就变成绿...原创 2019-07-04 22:05:41 · 2109 阅读 · 1 评论 -
opencv实战从0到N (11)—— 阈值化分割
opencv实战从0到N (11)—— 阈值化分割阈值化操作在图像处理中是一种常用的算法,opencv也有很多种不同的算法接口可以使用。1、直接阈值化——cv::threshold()阈值化操作的基本思想是,给定原图像和一个阈值,图像中每个元素与阈值之间的大小比较做出相应的二值操作。opencv3中支持这一操作的接口是cv::threshold(),具体调用方法如下:d...原创 2019-07-04 22:03:35 · 293 阅读 · 0 评论 -
opencv实战从0到N (19)编译vc10版opencv3.3.1
编译vc10版opencv3.3.11,下载opencv3.3.1的Sources源码:https://opencv.org/releases.html2,下载并安装Cmake工具:https://cmake.org/download/选择相应的系统版本3,打开CMake_gui 选择编译的源码与 build的路径如下图:4,点击configures,选择vs2010编译器,等待下载文件和配置...原创 2018-06-12 17:23:53 · 682 阅读 · 1 评论 -
opencv实战从0到N (10)—— adboost训练分类器
opencv实战从0到N (10)—— adboost训练分类器Adboost级联分类器1,Adboost级联分类器可以用来训练一个目标检测器,级联分类器包括多个强分类器,每个强分类器又包含多个弱分类器,通过将非目标样本一层层的排除,保证了目标检测的准确性。2,如何利用Adboost训练目标检测器?opencv提供了训练的工具opencv_traincascade.exe。通过收集...原创 2019-06-26 20:12:15 · 487 阅读 · 0 评论 -
opencv实战从0到N (9)—— 霍夫变换,直线与圆检测
opencv实战从0到N (9)—— 霍夫变换,直线与圆检测霍夫线变换,圆变换1,霍夫线变换是检测直线的一种方法,主要方法是判断多个点通过了同一条直线,首先使用极坐标表述一个点可能通过的所有直线,则极坐标方程就是一条正弦曲线,通过比较多个点的正弦曲线知否交汇在同一点,即可判断它们是否通过同一条直线。2,霍夫圆变换同霍夫线变换类似,在极坐标中使用圆心和坐标来表述一个圆,得到描述...原创 2019-06-26 20:09:52 · 282 阅读 · 0 评论 -
opencv实战从0到N (8)—— 积分图求解
opencv实战从0到N (8)—— 积分图求解求积分图及任意区域像素和1,积分图就是图像上一点(x,y)的左上面积之和,利用积分图可以对图像中的任意矩形区域,利用其四个点的积分值的加减运算即可求出此区域的像素之和,对于图像需要求和的特征可以加快运算速度,只需计算一次积分图,后续即可使用查询(结合加减运算)的方式获得特征值。2,函数:integral(image, imageI...原创 2019-06-26 20:07:22 · 327 阅读 · 0 评论 -
opencv实战从0到N (7)—— 模板匹配,形状匹配
opencv实战从0到N (7)—— 模板匹配,形状匹配模板匹配,形状匹配1,区域像素值匹配利用模板图像像卷积一样遍历整幅图像,以某种比对方式(距离差之和,相关度等)计算相似度,在结果图像上寻找最大或最小值(方法不同有些值越大越相似,有些相反)作为匹配结果。函数:matchTemplate(src, templ, result, match_method)Mat Temp...原创 2019-06-26 20:04:46 · 4264 阅读 · 0 评论 -
opencv实战从0到N (6)—— 直方图与均衡化
opencv实战从0到N (6)—— 直方图与均衡化直方图及均衡化1,直方图是求像素在各个数值上的统计数值,如0-255的图像,其灰度直方图即它各个数值出现次数的统计结果,可以用直方图的形式显示。函数:calcHist( &rgb[0], 1, 0, Mat(), r_hist, 1, &histSize, &histRange, uniform, accumu...原创 2019-06-26 19:58:54 · 323 阅读 · 0 评论 -
opencv实战从0到N (5)—— 图像变换(仿射,透视)
opencv实战从0到N (5)—— 图像变换(仿射,透视)仿射变换与透视变换1,仿射变换其实是两个矩阵的乘法运算后再加上一个向量矩阵,它将一个矩阵向量映射到另一个向量空间,正如在二维空间中的条直线,通过线性运算可以将其旋转(线性变换)和平移,也可以看作是坐标轴的改变(空间变换)。在opencv中首先需要得到一个映射矩阵,利用映射矩阵将原图进行变换。常使用的函数有:(1), g...原创 2019-06-26 19:53:19 · 522 阅读 · 0 评论 -
opencv实战从0到N (4)—— 图像加框,画图形及文字
opencv实战从0到N (4)—— 图像加框,画图形及文字给图像附加额外边框或掩膜,画图形及文字1,附加额外边框(常在卷积中使用)函数:copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );参数:src: 原图像dst: 目标图像top, bottom, left, rig...原创 2019-06-26 19:49:36 · 696 阅读 · 0 评论 -
opencv实战从0到N (3)—— 图像运算,像素操作与对比度变换
opencv实战从0到N (3)—— 图像运算,像素操作与对比度变换1,OpenCV 中提供了如下的一些函数,用来进行图像的加减乘除。void add(InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), int dtype=-1);void subtract(InputArray ...原创 2019-06-26 19:42:11 · 786 阅读 · 0 评论 -
opencv实战从0到N (2)—— 边缘检测
边缘检测1,Sobel 算子是一个离散微分算子 (discrete differentiation operator)。 它用来计算图像灰度函数的近似梯度。Sobel 算子结合了高斯平滑和微分求导。图像在边缘变化明显,所以用一阶微分求极值就可以得到边缘。2,Laplacian算子使用二阶导数可以用来 检测边缘 。图像在边缘时,一阶导数是极值,而二阶导数过零点。因为图像是 “2...原创 2019-06-24 13:08:40 · 346 阅读 · 0 评论 -
opencv实战从0到N (1)—— Mat结构及操作
Mat结构及操作 接触opencv很久,感觉学习的不够系统,所以将之前的零碎的笔记整理一下。 opencv是一个开源计算机视觉库,其核心为图像处理。Mat则是一个基础的图像容器,作为一个c++的对象类,我们在使用是不需要担心的内存管理情况,它由由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可...原创 2019-06-24 11:29:30 · 771 阅读 · 0 评论