随笔分类 - 图像处理Opencv/Matlab
摘要:论文地址 https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf 网络结构 论文里画的有点乱,这个更清楚一点 cifar10数据集官网就可以直接下载,keras里也内置下载函数
阅读全文
摘要:连通域分析其实是一个路径搜索问题,搜索方式就看联通的规则(4联通:上下左右算是联通,8联通:上下左右还有四个对角) 01矩阵背景是0,黑色的,有色区域是1,白色的,从图像的左上角(最外围的边要去掉)进行遍历,将找到的第一个值为1的像素点作为起点,对他进行连通域搜寻,将搜寻到的整个连通域内的像素点标为
阅读全文
摘要:把时间戳加到图像的前几个像素,前三位是小时,分钟,秒,后两位是毫秒,因为毫秒是四位数 time_t t=time(NULL); std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp = std
阅读全文
摘要:煤矸石分类项目,提取的煤矸石灰度均值和灰度方差作为特征进行分类,SVM的简单代码如下,使用的二次封装的opencv库,在其他机器上运行将头文件和条件编译宏替换成opencv自己的就可以了 #include "sv.h" #ifdef _DEBUG #pragma comment(lib,"BoxCV
阅读全文
摘要:SURF(Speeded Up Robust Features)特征关键特性 特征匹配,特征识别等方面有很好的效果,具有四个特征 --特征检测 --尺度空间(尺度不变性) --选择不变性(光照不变性,旋转不变性) --特征向量(匹配用) 特征检测整个流程可以用DDM来概括,第一个D是detector
阅读全文
摘要:理论与现实总是不一致的,实际情况下几乎所有角点都不是一个准确的像素点,因为图像的边缘不是之间有黑到白,而往往存在一个灰度的过度。(100,5)实际上 (100.234,5.789),而我们在跟踪、三维重建,相机校正等应用上又都需要精确的像素位置。有以下几种解决方法 1.插值法 通过周围四个点的变化情
阅读全文
摘要:自定义角点检测器是基于Harris和Shi-Tomasi角点检测的 首先通过计算矩阵M来得出λ1λ2两个特征值,然后根据他们得到角点响应值 然后自己设置阈值实现实现计算出阈值得到有效响应值的角点位置 API cv::cornerEigenValsAndVecs ( InputArray src, O
阅读全文
摘要:背景:煤矸石识别项目,需要先检测再识别,检测采用基于轮廓的定位方法,先找出轮廓,再求出轮廓的质心作为检测目标的中心点。但是遇到问题:图像边缘的煤矸石轮廓无法闭合,找到的中心店不准确,有时会出现一块石头两个中心点的情况 对预处理图像进行像素操作,图像二值化后将边界全部赋值为255也就是填充为白色可以解
阅读全文
摘要:Shi-Tomasi原理几乎和Harris一样的,只不过最后计算角点响应的公式发生了变化 变为 min(λ1,λ2) 这样计算会变得更简单 API cv::goodFeaturesToTrack( InputArray src, //默认灰度图像 OutputArray corners, int m
阅读全文
摘要:Harris角点提取算法:Harris 角点提取算法是Chris Harris 和Mike Stephens 在H.Moravec 算法的基础上发展出的通过自相关矩阵的角点提取算法,又称Plessey算法。Harris角点提取算法这种算子受信号处理中自相关面数的启发,给出与自相关函数相联系的矩阵M。
阅读全文
摘要:增加了标记,分水岭变换与着色,着色中的轮廓填充判定条件可以仔细看一下,下面是分水岭分割完整代码 #include"pch.h" #include<iostream> #include<opencv2/opencv.hpp> #include<math.h> using namespace std;
阅读全文
摘要:什么是图像分割 image segmentation 直观含义就是将图像从背景中分离开 图像分割是图像处理最重要的处理手段之一 图像分割的目标是将图像中的像素根据一定的规则分为若干个cluster几何,每个集合包含一类像素 根据算法分为监督学习方法和无监督学习方法,图像分割的算法多数都是无监督的学习
阅读全文
摘要:机器人手眼标定功能的一部分 计划采用九点标定,九点标定通过变换矩阵就可以完成,在opencv中就是一个api,但是问题是无法很好的进行机器人坐标与图像点的对应 解释一下问题: 机器人自己有个坐标系,机器人照片采集的图像也有一个坐标系,手眼标定就是将图像的坐标系转换成机器人的坐标系,相当于告诉机器人,
阅读全文
摘要:什么叫点多边形检测 测试一个点是否在给定的多边形内部,边缘或者外部 根据所有点到多边形中心距离可以生成一幅图像(测试图) cv::pointPolygonTest InputArray contour 输入的轮廓 Point2f pt 测试点 bool measureDist 是否返回距离值,否的话
阅读全文
摘要:什么叫图像矩 主要指几何矩,还存在复数矩 几何矩像素值与像素位置积的求和 中心距 中心归一化矩 矩一般对二值图像提取的轮廓再进行特征提取 图像的中心位置,使用图像的一阶矩除零阶矩m10和m01表示1阶矩,0+1=1,m00表示0阶矩 x0=m10/m00,y0=m01/m00 矩存储在moments
阅读全文
摘要:实现顺序 彩色图转灰度图 滤波处理(高斯滤波/均值滤波) 二值化处理 发现轮廓,找到图形轮廓 通过api在轮廓点上找到最小包含矩形和圆,旋转矩形与椭圆 进行绘制 RDP算法API approxPolyDP InputArray curve 输入点集 OutputArray approxCurve 输
阅读全文
摘要:包含点s集合中所有点的最小凸多边形的名字叫凸包 Graham扫描算法: 1.从y轴最低点作为起始点p0 2.从p0开始极坐标扫描,依次遍历图中所有的点,按极坐标角度大小,逆时针方向遍历 3.如果新遍历的点能产生一个左旋转,则将该点添加到凸包中,否则舍去 实现流程 1.彩色图像转灰度图像 2.灰度图像
阅读全文
摘要:轮廓发现是基于图像边缘提取寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终的轮廓发现结果 cv::findContours() InputOutputArray binImg//输入图像,非0像素被看成1,0的像素值保持不变8-bit OutputArrayOfArrays contours//
阅读全文
摘要:通过比较两幅图像的灰度直方图来确定相似性 一共四种方法 第一种:相关性比较 值的范围是-1~1相关性由小到大 第二种:卡方计算 越小表示相关性越强 第三种:十字交叉运算 第四种:巴氏距离计算 取值范围0~1,距离越小相关性越强 运算之前先要把rgb转化为hsv,然后将像素值归一化到0~1之间 #in
阅读全文
摘要:首先要明确什么是直方图 直方图反应图像灰度的分布情况,属于统计学特征。同样的,图像的梯度方向(0-180°)也可以做成直方图形式,类似的数据结构都可以制作成直方图 什么是直方图均衡化 直方图均衡化是一种提高灰度图像对比度的方法,将图像灰度从一个分布映射到另一个分布上 直方图均衡化由概率密度函数积分推
阅读全文