
机器视觉
走过,莫回头
这个作者很懒,什么都没留下…
展开
-
Canny算子边缘检测原理以及实现
Canny算子边缘检测原理以及实现原理解析基于卷积运算的边缘检测算法,比如Sobel、Prewitt等,有以下几个缺点:没有充分利用边缘的梯度方向。最后输出的边缘二值图,只是简单的利用阈值进行处理,显然如果阈值过大,则会损失很多边缘信息;如果阈值过小,则会出现很多的噪声。而Canny边缘检测基于这两点进行的改进,提出:基于梯度方向的非极大值抑制。双阈值的滞后阈值处理。步骤利用高斯滤波来平滑图像,目的是去噪声。寻找图像的强度梯度,和方向。利用非极大值抑制来消除边误检。(其实是对原创 2020-06-07 21:45:33 · 1580 阅读 · 0 评论 -
Opencv图像处理——水平线和垂直线的提取
Opencv图像处理——水平线和垂直线的提取检测原理图像形态学操作,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作:“膨胀”与“腐蚀”,使用不同的结构元素实现对输入图像的操作、得到想要的结果。操作过程输入彩色图像-imread转换为灰度图像-cvtColor转换为二值图像-adaptiveThreshold定义结构元素开操作(腐蚀+膨胀)提取水平与垂直直线代码:#inclu原创 2020-05-10 21:46:06 · 1886 阅读 · 0 评论 -
opencv图像处理——滤波器
opencv图像处理——滤波器均值滤波器假设我们有一个3*3的模板,系数全为1,那么欲求的中心点像素值就是以该模板为中心的9个像素的平均值来代替。根据定义可知,该滤波器具有模糊边缘的负面效应。通过空间均值处理来模糊图像,可以突出感兴趣的物体,即将较部分图像融入背景中 ,部分图像‘突出显示’出来,达到平滑图像的作用。平滑既是模糊 cv::boxFilter(image, dst, -1, cv::Size(3, 3), cv::Point(-1,-1)); cv::namedWindow("boxF原创 2020-05-09 21:00:57 · 719 阅读 · 0 评论 -
Opencv 图像处理——膨胀和腐蚀
opencv 图像处理——膨胀和腐蚀 腐蚀和膨胀是基本的形态学运算。形态学中最基本的概念是结构元素。结构元素可以简单的定义为像素的组合,在对应的元素上定义了一个原点(也称为锚点)。Opencv中的APIcv::Mat getStructuringElement(int shape, Size esize, Point anchor = Point(-1, -1) );这个函数的第一个参数表示内核的形状,有三种形状可以选择。矩形:MORPH_R原创 2020-05-10 17:11:17 · 888 阅读 · 0 评论 -
opencv图像处理——掩膜操作
opencv——掩膜操作 掩膜操作是指根据掩膜矩阵(也称作核kernel)重新计算图像中每个像素的值。掩膜矩阵中的值表示了邻近像素值(包括该像素自身的值)对新像素值有多大的影响。从数学的观点来看,我们用自己设置的权值,对像素领域内的值做了个加权平均。 比如,下面这个公式表示用5倍当前像素的值减去该像素上、下、左、右四个像素值和,得到的结果赋值给当前像素。使用该公式可以用于提升图像的对比度。调节I(i,j)的系数权重可以得到不同的对比度提升效果。I(i,j)=5∗I(i,j)−[I(i−1,j)+I原创 2020-05-09 15:40:34 · 1323 阅读 · 0 评论 -
SGM—视差计算学习笔记
SGM—视差计算 以下将基于个人理解,分别从SGM的核心公式,代价计算步骤,代价聚集。由于笔者学识所限,如有错漏或者理解错误的地方,敬请批评。 子像素拟合和一致性检查几乎是所有立体匹配算法必执行的策略。子像素拟合将整像素精度提高到子像素精度,而一致性检查可以说是剔除错误匹配的不二选择。 在局部立体匹配匹配中,与基础图像 Ib 对应的视差图Db是通过选择每一个像素p和对应的最小代价视差d来确定的。对于子像素拟合,通过相邻代价拟合一条二次曲线,即在下一个更高和更低的视差处,计算最小值的位置。然原创 2020-11-09 17:17:22 · 1157 阅读 · 0 评论 -
SGM—代价聚合学习笔记
SGM学习笔记原创 2020-11-08 21:24:30 · 2638 阅读 · 1 评论 -
opencv图像处理——GrabCut 图像分割
图像处理——GrabCut 图像分割 GrabCut算法,首先,把所有未标记的像素临时标为前景(cv::GC_PR-FGD)。基于当前的分类情况,算法将像素划分为多个颜色相似的组(即K个前景组,K个背景组)。下一步是通过引入前景和背景像素之间的边缘,确定背景/前景的分割,这将通过一个优化过程来实现。在此过程中,将试图连接具有相似标记的像素,并且避免出现边缘强度相对均匀的区域。使用Graph C...原创 2020-05-08 10:17:20 · 897 阅读 · 0 评论 -
Opencv——立体匹配
Opencv——立体匹配立体匹配立体匹配,就是匹配两个不同的摄像头视图的3D点,只有在两个摄像头的重叠视图内的可视区域才能被计算,这就是为什么要使摄像头靠近前向平行了。立体匹配的目的是通过匹配得到视差。立体匹配的方法BM算法:该算法代码:CvStereoBMState *BMState = cvCreateStereoBMState(); int SADWindowSize=15...转载 2019-11-26 17:16:31 · 3729 阅读 · 0 评论 -
Opencv——双目标定
Opencv——双目标定双目标定双目视觉标定就是通过求解实际三维空间中坐标点和摄像机二维图像坐标点的对应关系,在双目视觉中,三维空间坐标系一般是以左相机坐标系作为基准坐标系。利用棋盘板获取到的用于计算的二维图像坐标和三维空间的物理坐标,再通过一定的算法,求解出变换矩阵,则解决了基础的双目视觉标定的过程。矩阵从物体到相机坐标系统的转换:物体上的点P对应图像平面的点p,我们通过使用旋转矩阵R和...原创 2019-11-26 15:02:49 · 6982 阅读 · 2 评论 -
Opencv——单目标定
Opencv——单目标定相机标定就是设置相机各种参数的过程。当然相机厂家也会提供一些技术参数,但是对于某些任务来说,所提供的技术参数还不够精确。利用相机标定可以得到更精确的参数。用这些参数可以更加精确的确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系。标定步骤1.一张棋盘格标定板2.用 cv::findChessboardCorners(…) 函数获取棋盘角点3....原创 2019-11-04 23:07:22 · 803 阅读 · 0 评论 -
Opencv——单应矩阵
Opencv——单应矩阵单应性概念单应性(Homography)变换:可以简单的理解为它用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。单应矩阵H:s任意比例因子,M相机内参矩阵(看下一节)单应性在计算机视觉中的应用图像校正、图像拼接、相机位姿估计、视觉SLAM图像校正用单应矩阵进行图像矫正的例子如下图所示,最少需要四个对应点对就可以实现。...转载 2019-11-04 17:17:13 · 2468 阅读 · 0 评论 -
Opencv——目标跟踪Tracker
Opencv——目标跟踪TrackerOpenCV有八种不同的目标追踪工具,他们都可以运用到计算机视觉领域中。本文只用了以下六种对我现有数据的测试MIL Tracker:追踪器精确,但是失败率比较高。(最低支持OpenCV 3.0.0)KCF Tracker:比BOOSTING和MIL都快,但是在有遮挡的情况下表现不佳。(最低支持OpenCV 3.1.0)CSRT Tracker:比KCF...原创 2019-10-31 16:39:30 · 9910 阅读 · 9 评论 -
Opencv——用均值平移法meanshift做目标追踪
Opencv——用均值平移法meanshift做目标追踪OpenCV里的MeanShift跟踪方法涉及像素直方图和直方图反向投影的知识。均值平移算法定义直方图反向投影的结果是一个概率分布图,表示一个指定图像片段出现在特定的位置的概率。如果我们已经知道图像中某个物体的大概位置,就可以用概率分布图找到物体的准确位置。窗口的概率最大的位置就是物体最可能出现的位置。因此,我们可以从一个初始位置开始,...原创 2019-10-24 22:02:59 · 1385 阅读 · 0 评论 -
树莓派3B+安装Opencv和opencv_contrib指导手册
树莓派3B+安装Opencv和opencv_contrib指导手册1.换源将源更换成国内源,可以提升下载速度sudo vim /etc/apt/sources.list//注释掉原有的源,换成下面的源deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpid...原创 2019-10-09 15:42:02 · 789 阅读 · 0 评论 -
Opencv 视频帧的读写处理指导
Opencv 视频帧的读写指导思路指导1.先打开视频文件2.遍历视频帧3.处理视频帧4.保存所有的视频帧1.打开视频1.当读取的是保存的视频时,打开视频的方法为:cv::VideoCapture capture("视频名"); //将视频放到工程文件夹下2.当读取的是摄像头采集的是视频帧时,打开视频的方法为:cv::VideoCapture capture(0...原创 2019-09-07 16:59:03 · 3831 阅读 · 0 评论 -
opencv_contrib安装指导:
在OpenCV 3.0中,一些不稳定的功能被移动到独立的库(Opencv_ contrib).功能有:脸部识别、文本识别、边缘检测、追踪算法等,里面存放的是功能未稳定的代码,如果需要使用这些功能,就需要重新进行编译。原创 2019-08-11 17:15:21 · 3451 阅读 · 0 评论 -
Opencv 4.1.0 + vs2017 安装指导手册
Opencv 4.1.0 + vs2017 安装指导手册1. 下载vs2017和opencv4.1.0vs2017下载地址:链接: https://pan.baidu.com/s/1skPdqpf 密码: r7ns (其他版本在网上也能找到,这个就是在网上搜的)opencv-4.1.0-vc14_vc15下载地址:github端下载总地址:https://github.com/openc...原创 2019-08-11 16:33:28 · 312 阅读 · 1 评论 -
OpenCV之特征检测器和描述子提取器和描述子匹配器
OpenCV之特征检测器(Feature Detector),描述子提取器(Descriptor Extractor)和描述子匹配器(Descriptor Matcher)1.特征检测子-Harris[cpp] view plain copy print?cv::cornerHarris(image,strength,3,3,0.01);-Fast[cpp] view plain cop...原创 2019-08-19 23:05:14 · 1123 阅读 · 1 评论