OpenCV
文章平均质量分 95
wx_幼儿园的学霸
这个作者很懒,什么都没留下…
展开
-
路径聚合网络PANet(Path AggregationNetwork)介绍
路径聚合网络(Path Aggregation Network,简称PAN,PANet)是一种深度学习网络结构,用于图像分类和目标检测任务。它采用了多尺度特征融合和路径聚合的方法,能够有效地提高模型的性能和准确率,PAN网络结构包括主干网络和特征金字塔网络两部分,其中特征金字塔网络用于生成多尺度特征图,主干网络则用于将这些特征图进行路径聚合和特征融合。原创 2024-09-01 23:15:00 · 926 阅读 · 0 评论 -
补光灯光通量及光照度简单计算
1流明的光通量均匀分布在1平方米表面上所产生的光照度.它从另一个角度来反映光源亮不亮原创 2024-08-27 21:15:00 · 1519 阅读 · 0 评论 -
连通域分析--种子填充法(SeedFilling)
连通区域(Connected Component)一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域(Region,Blob).连通区域分析(Connected Component Analysis,Connected Component Labeling)是指将图像中的各个连通区域找出并标记.通常连通区域分析处理的对象是一张二值化后的图像.原创 2024-08-18 19:57:58 · 728 阅读 · 0 评论 -
直线段检测算法LSD:a Line Segment Detector
影像中的直线特征是视觉感知的重要线索和解释图像的基本依据,相比于点特征,直线段特征对视角和光照变化具有很好的鲁棒性。常用的直线检测有Hough直线检测和LSD等.Hough直线检测将直线检测映射为参数空间中点的检测,而LSD通过查找近似矩形区域来获得直线。LSD是由Rafael Grompone von Gioi等人在2012年提出的一种局部直线快速提取的算法, 它能在线性时间内得出亚像素级精度的检测结果,LSD算法较为稳定且存在错误控制, 可以在无人工调节任何参数的情况下快速得到满意的线特征提取结果.原创 2024-08-11 10:19:27 · 285 阅读 · 0 评论 -
Canny边缘检测算法及实现
提取图片的边缘信息是底层数字图像处理的基本任务之一.原创 2022-05-21 19:57:07 · 11458 阅读 · 5 评论 -
高斯滤波的理解与学习
高斯滤波的理解与学习微信公众号:幼儿园的学霸目录文章目录高斯滤波的理解与学习目录前言高斯函数一维高斯函数二维高斯函数高斯滤波过程高斯核求解利用高斯核滤波高斯滤波步骤高斯滤波实现高斯滤波标准差与窗口大小的换算实现常规实现分离实现高斯滤波总结高斯函数性质高斯滤波应用参考资料附录高斯函数及频谱绘图代码前言对一幅图像而言,低频部分对应整体灰度级的显示,高频部分对应着图像的细节部分.因此去掉低频部分(或者增强高频部分)可以锐化图像,去掉高频部分(或者增强低频部分)可以实现模糊/平滑图像的作用.去除低原创 2021-10-21 10:44:59 · 6951 阅读 · 1 评论 -
P3P相机姿态估计数学推导,求解及自定义实现
P3P相机姿态估计数学推导,求解及自定义实现微信公众号:幼儿园的学霸目录文章目录P3P相机姿态估计数学推导,求解及自定义实现目录前言相机到空间点距离求解角度θ的计算相机坐标系下的坐标计算自定义实现总结参考资料附录前言PnP问题(Perspective N Points)是指已知3D点的空间坐标及其在相机上的投影,求相机姿态的问题.投影方程可以表示为:λ[uv1]=K[Rt][XYZ1]\lambda\left[\begin{array}{l}u \\v \\1\end{array原创 2021-11-30 22:00:00 · 6311 阅读 · 4 评论 -
otsu算法详细推导、实现及Multi Level OTSU算法实现
otsu算法详细推导、实现及Multi Level OTSU算法实现目录文章目录otsu算法详细推导、实现及Multi Level OTSU算法实现目录简介推导及实现常规推导算法步骤及实现步骤实现从概率的角度解释推导实现扩展-MultiLevel OTSU延伸思考算法评价参考资料简介OTSU算法也称最大类间差法,有时也称之为大津算法,由大津于1979年提出,被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。它是按图像的灰度分布特性,将图原创 2021-10-14 09:00:40 · 9442 阅读 · 5 评论 -
自适应阈值化
自适应阈值化微信公众号:幼儿园的学霸目录文章目录自适应阈值化目录背景介绍及原理原理权重选择说明自定义实现结果对比参考资料背景介绍及原理原理图像阈值化的一般目的是从灰度图像中分离出目标区域和背景区域,然而仅仅通过设定全局固定阈值(对图像中的每个点其二值化的阈值都是相同的)的方法很难达到理想的分割效果。那么就需要一种方法来应对这样的情况。这种办法就是自适应阈值法(adaptiveThreshold),它的思想不是计算图像的全局阈值,而是根据图像不同区域亮度分布,计算其局部阈值,对于图像不同区域原创 2021-09-08 20:16:41 · 8602 阅读 · 1 评论 -
引导滤波推导及实现
引导滤波推导及实现微信公众号:幼儿园的学霸目录文章目录引导滤波推导及实现目录前言推导介绍推导引导滤波的算法流程及实现计算流程快速引导滤波流程自定义实现及效果引导滤波的应用应用优点其他参考资料前言引导滤波顾名思义,就是有选择(引导)性的滤波,其与我们经常提及的高斯滤波、双边滤波相比,它具有引导性,说具体点就是,它通过输入一副图像(矩阵)作为引导图,这样滤波器就知道什么地方是边缘,以此更好的保护边缘,最终达到在滤波的同时,保持边缘细节。各向同性滤波对待噪声和边缘信息采取一致的态度,从而导致噪声原创 2021-08-09 22:25:57 · 2728 阅读 · 0 评论 -
双边滤波算法原理及代码介绍
双边滤波算法原理及代码介绍微信公众号:幼儿园的学霸目录文章目录双边滤波算法原理及代码介绍目录介绍原理算法过程过程描述σ的意义及选取OpenCV 代码分析参考资料A bilateral filter is a non-linear, edge-preserving, and noise-reducing smoothing filter for images. It replaces the intensity of each pixel with a weighted average of i原创 2021-07-12 15:14:22 · 6402 阅读 · 9 评论 -
Image sensor 知识简介
转载自公众号 像由芯生 ,原文链接前言摄像机用来成像的感光元件叫做Image Sensor或Imager。目前广泛使用的2种Image Sensor是CCD和CMOS Image Sensor(CIS)。在数码摄影机市场上已经广泛应用了CCD技术,但是CCD需要消耗大量的能量和相当多的支持芯片。所以CMOS Image Sensor应运而生。其每个像素都可以进行自己的电荷转换,从而显著减少产生图像所需要的能量和支持电路。此外,CMOS Image Sensor采用与大多数微处理器和存储器芯片相同的材转载 2021-02-02 22:52:41 · 8483 阅读 · 1 评论 -
求解直线与平面的交点
求解直线与平面的交点微信公众号:幼儿园的学霸目录文章目录求解直线与平面的交点目录前言数学模型推导编程实现参考资料前言直线与平面的交点求解相关的内容在网上已经有很多资料进行介绍,目前所看到的博文在数学模型建立上都是正确的,但是其编程实现却存在问题,导致只有部分情况下能够正确求出直线与平面的交点,另外一些情况下求出的交点却是错误的.本文对原理进行推导并实现正确的编码.数学模型推导已知经过两点P1(x1,y1,z1),P2(x2,y2,z2)P_1(x_1,y_1,z_1),P_2(x_2,y_原创 2021-04-08 22:18:43 · 4558 阅读 · 5 评论 -
一种Tone Mapping 算法---Adaptive Logarithmic Mapping自适应对数映射
一种Tone Mapping 算法—Adaptive Logarithmic Mapping自适应对数映射微信公众号:幼儿园的学霸在查找图像增强方面的相关算法时,看到一篇博客,而博文中的核心是实现2003年的一篇论文,论文的原意是用在高对比场景下的自适应对数映射算法,但是查看博文中展示的图片效果,发现该算法在低光照下对色彩恢复效果也是很好,论文的名字是《Adaptive Logarithmic Mapping For Displaying High Contrast Scenes》。但是那篇博客中原创 2020-12-30 22:34:37 · 2583 阅读 · 2 评论 -
判断线段是否相交并求交点
判断线段是否相交并求交点公式推导设两条线段AB和CD,其端点分别为(xa,ya),(xb,yb)(xc,yc),(xd,yd)(x_a,y_a),(x_b,y_b) (x_c,y_c),(x_d,y_d)(xa,ya),(xb,yb)(xc,yc),(xd,yd).需要判断2条线段是否相交,若相交求交点。两条直线所在的参数方程为:{x=xa+α(xb−xa)y=ya+α(yb−ya){x=xc+β(xd−xc)y=yc+β(yd−yc)(1)\left\{\begin{align原创 2020-12-29 21:12:32 · 1616 阅读 · 0 评论 -
自动伽马校正(Auto Gamma Correction)算法
自动伽马校正(Auto Gamma Correction)算法目录文章目录自动伽马校正(Auto Gamma Correction)算法目录理论代码实现参考资料理论在对图像进行处理过程中,查找到一篇对图像进行自动gamma校正的论文,论文名称及链接见参考文献1.文章的核心描述如下:Average of brightness is simple element that can be computed in the least amount of time. Basic approach in原创 2020-12-09 20:52:30 · 12738 阅读 · 6 评论 -
自动白平衡--完美反射算法(Perfect Reflector Assumption)
输入图片灰度世界算法完美反射算法原创 2020-12-08 20:22:06 · 6721 阅读 · 7 评论 -
自动白平衡--灰度世界算法(Gray World Algorithm)
自动白平衡–灰度世界算法(Gray World Algorithm)微信公众号:幼儿园的学霸目录文章目录自动白平衡--灰度世界算法(Gray World Algorithm)目录引言灰度世界算法原理opencv实现参考资料引言人的视觉系统具有颜色恒常性(Color Constancy),能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能,如彩色相机内部有三个CCD电子耦合元件,分别用来感受红绿蓝三种颜色的光线,默认情况下,三个颜色的感光电路信号的放大比例是原创 2020-11-22 20:41:24 · 15252 阅读 · 9 评论 -
RGB归一化及高效实现
RGB归一化及高效实现微信公众号:幼儿园的学霸介绍在图像处理中,RGB颜色模型是比较常用的格式,但是其存在一个明显的缺点:容易受到光照变化或阴影的影响,也就是说,同一位置,不同光照强度会导致图像的RGB值发生很大变化.而通过对图像的RGB色彩空间进行归一化处理,在某些情况下是去除光照和阴影影响的一种简单和有效的方法.假设图像上某点的的像素值为RGB,rgb表示归一化之后的值,那么RGB归一化的公式表示如下:r=RR+G+Bg=GR+G+Bb=BR+G+B(or b=1−r−g)r原创 2020-11-18 22:39:01 · 8989 阅读 · 1 评论 -
内存只增不减(非内存泄露)解决
在ADAS项目中,代码中加入了跟踪模块,使得程序的内存占用不断上升,但是却不是内存泄漏,断断续续经过近2周的排查,终于将问题解决,特此记录,希望对你有所帮助!原创 2020-04-08 20:00:32 · 5597 阅读 · 0 评论 -
RANSAC算法(附RANSAC直线拟合C++与Python版本)
RANSAC算法(附RANSAC直线拟合C++与Python版本)微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;之前在利用双目摄像头进行车道线检测时,利用RANSAC算法在三维空间中进行路面估计,随后在估计的路面上进行车道线检测。当时由于时间紧急,未对该算法进行总结,目前,在利用神经网络检测车道线时,发现分割完毕后的车道线为一系列...原创 2020-02-29 11:56:35 · 15947 阅读 · 10 评论 -
x264及H264实现对OpenCV Mat的编解码
x264及H264实现对OpenCV Mat的编解码微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;之前写的ADAS客户端软件和ADAS程序之间的视频传输采用了cv::imencode和cv::imdecode函数实现编解码,最近偶然间发现可以利用H.264对视频进行编解码,并且效果还不错,特此记录。目录文章目录x264及H26...原创 2019-12-19 22:24:47 · 7009 阅读 · 23 评论 -
图像形态学操作
图像形态学操作微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, … 问题或建议,请公众号留言;看到一段话,深有感触作为软件开发者,我们曾经写过的或者正在写的每一行代码都对我们的渐进式互联世界负有重要的责任。它在很大程度上改变了人类的命运。我们应该为自己所做的事情感到自豪,并且必须将责任进行到底,因为整个世界都在期待我们创造更多的魔力,实现更多的创新。...原创 2019-02-23 09:47:42 · 4849 阅读 · 0 评论 -
霍夫变换直线检测(Line Detection)原理及示例
霍夫变换直线检测(Line Detection)原理及示例微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, … 问题或建议,请公众号留言;给定一幅图像(一般为二值图像)中的点集合,如何检测直线?一种解决方法:任选一对点,决定一条线,然后测试所有其他点是否接近这条线,从而得出接近这条特殊线的所有点的子集。该方法比较复杂。另外一种方法便是采用霍夫变换。霍夫变换是图...原创 2019-02-24 20:47:24 · 108469 阅读 · 39 评论 -
OpenCV-透视变换及对二维点求透视变换之后的坐标
OpenCV-透视变换及对二维点求透视变换之后的坐标微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;目录前言基本原理OpenCV透视变换函数代码前言 在做车道线检测中用到了透视变换的一点内容,用于将相机拍摄的图像转换到道路平行的视角下,即鸟瞰图,然后在鸟瞰图中进行车道线检测。 如图1、图2所示分别为相机...原创 2019-02-17 21:00:02 · 14258 阅读 · 7 评论 -
双目视觉SLAM:Stereo DSO初次运行
双目视觉SLAM:双目DSO初次运行参考链接:代码:源码安装步骤:使用:数据集格式说明:参考链接:双目DSO.大部分操作来源于该博客,非常详细第一次运行双目SLAM,特记录相关过程。代码:地平线智能驾驶团队的工作:github代码.双目DSO是基于DSO的实时双目SLAM系统。它由Horizon Robotics公司的Autonomous Driving Group成员开发,运行在...原创 2018-11-28 17:39:41 · 6094 阅读 · 7 评论 -
OpenCV绘制多边形和区域填充
OpenCV绘制多边形和区域填充绘制多边形和区域填充主要用到了2个函数:polylines()和fillPoly()函数。代码如下:#include<opencv2/opencv.hpp>#include<vector>#include <iostream>#include "opencvLibs.h"int原创 2018-10-31 10:59:38 · 19007 阅读 · 10 评论 -
OpenCV kmeans示例
OpenCV kmeans示例 Mat labels,centers; Mat samples = Mat(LeftLinesArray.size(),2,CV_32FC2);//这里采用CV_32FC2的原因是因为LeftLinesArray[i]的元素类型是Vec4f, //保存了线段的起点和终点,因此第一列表示线段起点,第二列表示线段终点。 //如果采用极坐...原创 2018-09-27 15:09:46 · 1300 阅读 · 0 评论 -
opencv:矩阵合并/拼接
OpenCV中矩阵合并,可以采用如下两个函数:hconcat-----//左右拼接,水平拼接vconcat----//上下拼接,竖直拼接。目的:可以利用这2个函数扩充矩阵。Note:也可以将一个非零矩阵合并与一个零矩阵合并,前提是需要定义零矩阵的大小为0行0列示例代码如下:hconcatcv::Mat_<float> A = (cv::Mat_<fl...原创 2018-08-07 17:11:42 · 11045 阅读 · 4 评论 -
OpenCV:使用Mat.at访问数据的对应关系
OpenCV:使用Mat.at&lt;&gt;访问数据的对应关系 opencv中,由于使用Mat.at&lt;&gt;访问数据时,必须正确填写相应的数据类型,因此必须弄清楚opencv中的数据类型与我们常用&nbsp; 数据类型一一对应关系。CV_8U(uchar) CV_8UC1 (uchar) CV_8UC2 (Vec2b) CV_8UC3 (Vec3b) CV_8UC...原创 2018-08-11 15:46:27 · 5707 阅读 · 2 评论 -
空间中平面方程求解及点到平面的距离
1.空间中平面方程的一般形式为: Ax+By+Cz+D=0 (参数,A,B,C,D是描述平面空间特征的常数) 已知空间中3个点的坐标(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),求解平面方程。解法1.根据已知的3个点,建立3个联合方程组,进行消元;2.根据克莱姆法则,求解的结果中,(A,B,C)表示平面的法向量。下面给出OpenCV中具体代码实现: ...原创 2018-08-10 20:35:49 · 10021 阅读 · 1 评论 -
OpenCV:vector数据类型转换
1.vector&lt;Point2f&gt; 和 vector&lt;Point2i&gt;之间相互转换vector&lt;Point2f&gt;===&gt; vector&lt;Point2i&gt; cv::Mat(vector).convertTo(vector&lt;Point2i&gt;,CV_32SC1)原创 2018-08-10 20:17:54 · 4925 阅读 · 0 评论 -
卡尔曼滤波(Kalman Filter)
卡尔曼滤波(Kalman Filter)微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;目录[TOC]what is Kalman Filter举个例子,对于雷达来说,我们感兴趣的是其能够跟踪目标,但对目标的位置、速度、加速度的测量值往往存在噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影像,得到一个关于目标位置的好的估计...原创 2019-03-08 08:19:26 · 4391 阅读 · 1 评论 -
图像缩放操作
void resize(InputArray src, //输入图像OutputArray dst, //输出图像Size dsize, //输出图尺寸double fx=0, //沿x轴缩系数(宽度方向)double fy=0, //沿y轴缩放系(高度方)int interpolation=INTER_LINEAR //插值方式dsize表示输出图像的大小,如果为0,则输出图像大小按下式计:dsizSizeroundfx∗srccolsro。原创 2024-09-04 19:43:16 · 855 阅读 · 0 评论 -
OpenCV图像直方图
OpenCV图像直方图微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;灰度直方图(Histogram)是数字图像处理中最简单、最有用的工具之一,它概括了一幅图像的灰度级内容此处对直方图的数学原理以及OpenCV中的示例进行了展示。目录文章目录OpenCV图像直方图目录定义直方图的绘制直方图的性质直方图的应用OpenCV计算并绘制...原创 2019-03-28 08:28:53 · 12254 阅读 · 6 评论 -
毫米波与视觉融合及车道线检测视频分享
毫米波与视觉融合及车道线检测视频分享微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;ADAS项目基本就要结束了,今天将项目中的部分结果视频进行一下分享,希望展示的结果能够启迪他人,对其有所帮助。展示的视频分为两部分:1)毫米波和视觉融合的结果2)车道线的检测结果。毫米波和视觉融合结果毫米波和视觉融合——像素坐标系下的融合在进行...原创 2019-08-25 10:55:05 · 2139 阅读 · 5 评论 -
OpenCV reduce 函数
OpenCV reduce 函数微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;最近在对矩阵的每一列进行求和时,发现了一个函数cv::reduce(),该函数将我原本的的循环遍历操作代码量减少至了一行函数调用,故特此记录,望可对他人有一定启发作用。目录文章目录OpenCV reduce 函数目录函数说明代码示例应用示例函数说明...原创 2019-07-02 21:55:59 · 14013 阅读 · 2 评论 -
ADAS远程调试软件——基于QT OpenGL的视频及毫米波与视觉目标显示
ADAS远程调试软件——基于QT OpenGL的视频及毫米波与视觉目标显示微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;最近忙于ADAS项目,目前,项目代码部分已基本完成,经过自测没有问题,需要交给测试人员按照测试用例要求对每一项进行测试。为方便测试人员的测试工作,特编写了一个调试软件,便于其测试工作。趁今天晚上有时间,赶紧进行总...原创 2019-07-16 08:29:18 · 1749 阅读 · 0 评论 -
数字图像处理——拉普拉斯算子
在图像增强中,平滑是为了消除图像中噪声的干扰,或者降低对比度,与之相反,有时为了强调图像的边缘和细节,需要对图像进行锐化,提高对比度。拉普拉斯锐化图像是根据图像某个像素的周围像素到此像素的突变程度有关,也就是说它的依据是图像像素的变化程度。我们知道,一个函数的一阶微分描述了函数图像是朝哪里变化的,即增长或者降低;而二阶微分描述的则是图像变化的速度,急剧增长下降还是平缓的增长下降。那么据此我们可以猜测出依据二阶微分能够找到图像的色素的过渡程度,例如白色到黑色的过渡就是比较急剧的。原创 2024-08-18 19:59:44 · 811 阅读 · 0 评论 -
毫米波雷达与视觉融合———联合标定及外参标定问题
毫米波雷达与视觉融合———联合标定及外参标定问题微信公众号:幼儿园的学霸个人的学习笔记,关于OpenCV,关于机器学习, …。问题或建议,请公众号留言;最近在做ADAS项目,早期时选择的方案是利用纯视觉实现,后面发现纯视觉在测距上有一定的困难,同时纯视觉方案在arm开发板上的检测速率不高,因此考虑采用用毫米波和视觉融合来实现ADAS功能。利用毫米波进行障碍物位置确定,然后利用视觉进行目标...原创 2019-03-22 08:45:11 · 35997 阅读 · 33 评论