09 2019 档案

摘要:Shi-Tomasi角点检测理论 跟Harris角点检测的理论几乎完全一致, 唯一不同的是 在使用矩阵 特征值 确定图像的强角点在图像中寻找具有大特征值的角点。该函数,首先用cvCornerMinEigenVal 计算输入图像的每一个象素点的最小特征值,并将结果存储到变量 eig_image 中。然 阅读全文
posted @ 2019-09-27 16:18 osbreak 阅读(289) 评论(0) 推荐(0) 编辑
摘要:Harris角点检测理论: 大致描述: 图像大小x,y, 以x和y为基点,(每个图像点 减去 系数(x,y) ,平方)求和, 得到输出响应。 R 既是我们要得到的角点, k取0.04-0.06之间。 阅读全文
posted @ 2019-09-27 14:42 osbreak 阅读(219) 评论(0) 推荐(0) 编辑
摘要:使用io_service和定时器写的一个同步和异步方式的任务队列 #pragma once #include #include #include #include #include #include #include #include class task { public: task(); ~task(); void init(); ... 阅读全文
posted @ 2019-09-20 16:52 osbreak 阅读(932) 评论(0) 推荐(0) 编辑
摘要:什么是图像分割 图像分割(Image Segmentation)是图像处理最重要的处理手段之一 图像分割的目标是将图像中像素根据一定的规则分为若干(N)个cluster集合,每个集合包含一类像素。 根据算法分为监督学习方法和无监督学习方法,图像分割的算法多数都是无监督学习方法 - KMeans 距离变换常见算法有两种 - 不断膨胀/腐蚀得到 - 基于倒角距离 分水岭变换常见的算法 - 基于浸泡理论 阅读全文
posted @ 2019-09-11 10:54 osbreak 阅读(1268) 评论(0) 推荐(0) 编辑
摘要:点多边形测试 测试一个点是否在给定的多边形内部,边缘或者外部 double pointPolygonTest( InputArray contour, // 输入的轮廓 Point2f pt, // 测试点 bool measureDist // 是否返回距离值,如果是false,1表示在内面,0表示在边界上,-1表示在外部,true返回实际距离 ) 步骤 构建一张400x400大小的图片, Ma 阅读全文
posted @ 2019-09-11 10:44 osbreak 阅读(728) 评论(0) 推荐(0) 编辑
摘要:矩的概念介绍 1、几何矩 2、中心距 3、中心归一化距 4、图像中心Center(x0, y0) 阅读全文
posted @ 2019-09-10 17:16 osbreak 阅读(1911) 评论(0) 推荐(0) 编辑
摘要:基于RDP算法实现,目的是减少多边形轮廓点数 approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed) cv::boundingRect(InputArray points)//得到轮廓周围最小矩形左上交点坐标和右下角点坐标,绘制一个矩形 cv::minAreaRect(InputArr 阅读全文
posted @ 2019-09-10 16:37 osbreak 阅读(1420) 评论(0) 推荐(0) 编辑
摘要:概念介绍 什么是凸包(Convex Hull),在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。 正式定义:包含点集合S中所有点的最小凸多边形称为凸包 Graham扫描算法 首先选择Y方向最低的点作为起始点p0 从p0开始极坐标扫描,依次添加p1….pn(排序顺序是根据极坐标的角度大小,逆时针方向) 对每个点pi来说,如果添加pi点到凸包中导致一个左转向(逆时针方法)则添加该点 阅读全文
posted @ 2019-09-10 16:10 osbreak 阅读(697) 评论(0) 推荐(0) 编辑
摘要:轮廓发现(find contour) 轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法。 所以边缘提取的阈值选定会影响最终轮廓发现结果 //发现轮廓 cv::findContours( InputOutputArray binImg, // 输入图像,非0的像素被看成1,0的像素值保持不变,8-bit OutputArrayOfArrays contours, // 全部发现的轮廓对象 Outp 阅读全文
posted @ 2019-09-10 15:48 osbreak 阅读(1114) 评论(0) 推荐(0) 编辑
摘要:OpenCV中提供了六种常见的匹配算法如下: 1、计算平方不同 2、计算相关性 3、计算相关系数 模板匹配介绍 – 匹配算法介绍 1、计算归一化平方不同 2、计算归一化相关性 3、计算归一化相关系数 阅读全文
posted @ 2019-09-10 15:06 osbreak 阅读(3693) 评论(0) 推荐(0) 编辑
摘要:直方图反向投影(Back Projection) 反向投影是反映直方图模型在目标图像中的分布情况。 简单点说就是用直方图模型去目标图像中寻找是否有相似的对象。通常用HSV色彩空间的HS两个通道直方图模型。 反向投影 – 步骤 1.建立直方图模型 2.计算待测图像直方图并映射到模型中 3.从模型反向计算生成图像 实现步骤与相关API 加载图片imread 将图像从RGB色彩空间转换到HSV色彩空间c 阅读全文
posted @ 2019-09-10 14:10 osbreak 阅读(694) 评论(0) 推荐(0) 编辑
摘要:直方图比较方法-相关性计算(CV_COMP_CORREL) 直方图比较方法-卡方计算(CV_COMP_CHISQR) 直方图比较方法-十字计算(CV_COMP_INTERSECT) 直方图比较方法-巴氏距离计算(CV_COMP_BHATTACHARYYA ) 阅读全文
posted @ 2019-09-10 10:42 osbreak 阅读(738) 评论(0) 推荐(0) 编辑
摘要:直方图概念 上述直方图概念是基于图像像素值,其实对图像梯度、每个像素的角度、等一切图像的属性值,我们都可以建立直方图。 这个才是直方图的概念真正意义,不过是基于图像像素灰度直方图是最常见的. 阅读全文
posted @ 2019-09-09 17:17 osbreak 阅读(428) 评论(0) 推荐(0) 编辑
摘要:直方图均衡化 图像直方图: 是指对整个图像像在灰度范围内的像素值是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。 直方图反映了图像灰度的分布情况。是图像的统计学特征。 直方图均衡化 通过上一课中的remap我们知道可以将图像灰度分布从一个分布映射到另外一个分布, 然后在得到映射后的像素值即可。 equalizeHist( InputAr 阅读全文
posted @ 2019-09-09 16:55 osbreak 阅读(253) 评论(0) 推荐(0) 编辑
摘要:像素重映射(cv::remap) 简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。 阅读全文
posted @ 2019-09-09 16:40 osbreak 阅读(337) 评论(0) 推荐(0) 编辑
摘要:霍夫圆检测原理 从平面坐标到极坐标转换三个参数 假设平面坐标的任意一个圆上的点,转换到极坐标中: 处有最大值,霍夫变换正是利用这个原理实现圆的检测。 阅读全文
posted @ 2019-09-09 15:34 osbreak 阅读(666) 评论(0) 推荐(0) 编辑
摘要:霍夫直线变换介绍 Hough Line Transform用来做直线检测 前提条件 – 边缘检测已经完成 平面空间到极坐标空间转换 对于任意一条直线上的所有点来说,变换到极坐标中,从[0~360]空间,可以得到r的大小 属于同一条直线上点在极坐标空(r, theta)必然在一个点上有最强的信号出现, 阅读全文
posted @ 2019-09-05 17:11 osbreak 阅读(466) 评论(0) 推荐(0) 编辑
摘要:Canny算法介绍 五步 in cv::Canny 高斯模糊 - GaussianBlur 灰度转换 - cvtColor 计算梯度 – Sobel/Scharr 非最大信号抑制 高低阈值输出二值图像 Canny算法介绍-高低阈值输出二值图像 T1, T2为阈值, 凡是高于T2的都保留, 凡是小于T1都丢弃, 从... 阅读全文
posted @ 2019-09-05 16:55 osbreak 阅读(1016) 评论(0) 推荐(0) 编辑
摘要:拉普拉斯算子(Laplance operator) 阅读全文
posted @ 2019-09-05 16:41 osbreak 阅读(337) 评论(0) 推荐(0) 编辑
摘要:卷积应用-图像边缘提取 阅读全文
posted @ 2019-09-05 15:58 osbreak 阅读(1268) 评论(0) 推荐(0) 编辑
摘要:卷积边界问题 图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5滤波的时候有2个像素的边缘没有被处理。 处理边缘 在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1个像素的边缘, 这样就确保图像的边缘被处理,在卷积处理之后再去掉这些边缘。 openCV中默认的处理方法是: BO 阅读全文
posted @ 2019-09-05 15:40 osbreak 阅读(1042) 评论(0) 推荐(0) 编辑
摘要:卷积概念 1、卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。 2、Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)。 3、把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。 常见 阅读全文
posted @ 2019-09-05 15:17 osbreak 阅读(429) 评论(0) 推荐(0) 编辑
摘要:阈值类型一阈值二值化(threshold binary) 阈值类型一阈值反二值化(threshold binary Inverted) 阈值类型一截断 (truncate) 阈值类型一阈值取零 (threshold to zero) 阈值类型一阈值反取零 (threshold to zero inv 阅读全文
posted @ 2019-09-05 14:53 osbreak 阅读(385) 评论(0) 推荐(0) 编辑
摘要:图像金字塔概念 1. 我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小(zoom out),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 2. 一个图像金字塔式一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就想一个古代的金字塔。 图像金字塔概念 1、高斯金子塔 – 用来对图像进行降采样 2、拉普拉斯金字塔 – 用 阅读全文
posted @ 2019-09-05 13:43 osbreak 阅读(3934) 评论(0) 推荐(0) 编辑
摘要:原理方法 -图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。 -通过使用两个最基本的形态学操作 – 膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。 - 膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值 - 腐蚀,输出的像素值是结构元素覆盖下输入图像的最小像素值 提取步骤 阅读全文
posted @ 2019-09-05 11:45 osbreak 阅读(703) 评论(0) 推荐(0) 编辑
摘要:形态学操作 开操作- open 闭操作- close 形态学梯度- Morphological Gradient 顶帽 – top hat 黑帽 – black hat 开操作- open 先腐蚀后膨胀 可以去掉小的对象,假设对象是前景色,背景是黑色 闭操作-close 先膨胀后腐蚀(bin2) 可以填充小的洞(fill hole),假设对象是前景色,背景是黑色 形态学梯度- Morphologi 阅读全文
posted @ 2019-09-05 11:12 osbreak 阅读(472) 评论(0) 推荐(0) 编辑
摘要:/**Size //大小*Point //锚点 默认是Point(-1, -1)意思就是中心像素*/getStructuringElement(int shape, Size ksize, Point anchor) dilate(src, dst, kernel) erode(src, dst, 阅读全文
posted @ 2019-09-03 17:00 osbreak 阅读(448) 评论(0) 推荐(0) 编辑
摘要:中值滤波 统计排序滤波器 中值对椒盐噪声有很好的抑制作用 medianBlur(Mat src, Mat dest, ksize) 双边滤波 均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重 高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同 高斯双边模糊 – 是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变 bilateralFilter(src, 阅读全文
posted @ 2019-09-03 16:47 osbreak 阅读(164) 评论(0) 推荐(0) 编辑
摘要:假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,从上向下移动,黄色的每个像个像素点值之和取平均值赋给中心红色像素作为它卷积处理之后新的像素值。每次移动一个像素格。 模糊原理1、归一化盒子滤波(均值滤波) blur(Mat src, Mat dst, Size(xradi 阅读全文
posted @ 2019-09-03 16:21 osbreak 阅读(303) 评论(0) 推荐(0) 编辑
摘要:画线 cv::line(LINE_4\LINE_8\LINE_AA) 画椭圆 cv::ellipse 画矩形 cv::rectangle 画圆 cv::circle 画填充 cv::fillPoly putText(bgImage, "Hello OpenCV 你好 ", Point(300, 300), CV_FONT_HERSHEY_COMPLEX, 1.0, Scalar(12, 23, 2 阅读全文
posted @ 2019-09-03 16:10 osbreak 阅读(250) 评论(0) 推荐(0) 编辑
摘要:图像变换可以看作如下: - 像素变换 – 点操作 - 邻域操作 – 区域 调整图像亮度和对比度属于像素变换-点操作 //创建一张跟原图像大小和类型一致的空白图像、像素值初始化为0 Mat new_image = Mat::zeros( image.size(), image.type() ); //确保值大小范围为0~255之间 saturate_cast<uchar>(value) //给每个像 阅读全文
posted @ 2019-09-03 15:12 osbreak 阅读(694) 评论(0) 推荐(0) 编辑
摘要:理论-线性混合操作 g(x) 表示 融合图片中的像素点,f0(x) 和 f1(x) 分别表示背景和前景图片中的像素点。 阅读全文
posted @ 2019-09-03 14:53 osbreak 阅读(1149) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-09-03 13:27 osbreak 阅读(1180) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-09-03 11:43 osbreak 阅读(426) 评论(0) 推荐(0) 编辑
摘要:1、configure、 2、再次configure通过。全变为白色。 3、勾选 BUILD_opencv_world 。(将所有lib打包成一个lib) 4、添加扩展库路径: D:\Appinstall\opencv-3.4.4_vc15_cmake\opencv_contrib-3.4.4\mo 阅读全文
posted @ 2019-09-02 16:01 osbreak 阅读(157) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示