Image Process
文章平均质量分 93
图像处理一些基本算法整理和实现
MirrorYuChen
瞎哔哔!
展开
-
图像处理(一):灰度化及RGB2HSV
图像灰度化,即将图像从RBG三通道彩色图像转换成灰度图像,现有的方法主要有三种:1、取最大值:即从RBG三个彩色通道中,去亮度的最大值2、取平均值:即取RBG三个彩色通道亮度的平均值3、取加权平均值:RBG三通道占有比例分别为0.11,0.59,0.3下面是实现代码: #include <opencv2/opencv.hpp>using namespace...原创 2017-11-13 13:46:43 · 9482 阅读 · 0 评论 -
图像处理(二):直方图均衡化
直方图均衡化处理:通过重新均匀地分布各灰度值来增强图像对比度;具体实现方法如下:1、统计直方图数组,用Utable来记录Utable[i];2、i从1开始,令Cumu[i] = Cumu[i-1] +Utable[i];3、计算概率Pro[i]4、计算直方图均衡化后的数值具体代码如下:#include <opencv2/opencv.hpp>#include <iostream...原创 2017-11-13 16:44:03 · 898 阅读 · 0 评论 -
图像处理(三):图像滤波
均值滤波:利用点(x,y)领域内像素点均值来替换(x,y)处像素值;中值滤波:利用点(x,y)领域内像素点中值来替换(x,y)处像素值;具体实现代码如下:#include <opencv2/opencv.hpp>using namespace cv;const int directions[8][2] = { { -1, -1 }, { -1, 0 }, { -1, 1 }, ...原创 2017-11-13 17:53:50 · 690 阅读 · 0 评论 -
图像处理(四):边缘检测(一):
利用0、45、90、135度模板,求图像梯度,然后计算最大值:四个模板分别如下:具体代码如下:#include #include using namespace cv;using namespace std;// 8领域const int directions[9][2] = { { -1, -1 }, { -1, 0 }, { -1, 1 },原创 2017-11-14 19:08:06 · 998 阅读 · 0 评论 -
图像处理(四):边缘检测(二):sobel和canny
具体原理,参考博客点击打开链接,最常用的边缘检测算子有:sobel、canny、prewitt、Roberts等,sobel算子模板为:sobel算子考虑了邻域信息,相当于对图像先做加权平均,然后再做微分运算。Canny算子:1、使用Gassian滤波器平滑处理;2、使用sobel算子分别计算x,y方向梯度分量及梯度方向;3、对梯度进行非极大值抑制;4、使用双阈值对原创 2017-11-15 18:15:46 · 2930 阅读 · 0 评论 -
图像处理(五):八邻域边缘跟踪与区域生长算法
通常在进行边缘检测之后,需要通过边缘跟踪来将离散的边缘串接起来,常使用的方法为:边缘跟踪和区域生长两种方法。边缘跟踪又分为八邻域和四邻域两种,具体原理可以参考残影、的博客。实现步骤:1、灰度化并进行Canny边缘检测2、按照预先设定的跟踪方向(顺时针)进行边缘跟踪3、每次跟踪的终止条件为:8邻域都不存在轮廓这里需要理解的点:代码中为什么更新当前方向时,需要curr_d -=...原创 2017-11-17 11:12:39 · 56061 阅读 · 30 评论 -
图像处理(六):二值化
二值化:设置一个阈值,图像灰度值如果小于这个阈值,就将对应灰度值设置为0,反之,保留。按照设置阈值的方式:1、固定阈值:预先设置的固定阈值;2、自适应阈值:通过某种算法对图像像素进行处理,自动计算出最佳的阈值;固定阈值就不多说了,太简单了!这里说一下自适应阈值,最经典的要数大津法(OTSU),将图像直方图用某一灰度分成两组,将分割后两组间方差对应的灰度值设置为最佳阈值,具体原理可以原创 2017-11-18 17:03:54 · 1674 阅读 · 0 评论 -
图像处理(七):图像变换
图像的平移、镜像原理都很简单,一搜一大堆。具体可以参考博客:点击打开链接实现代码如下:#include using namespace cv;int main(){ Mat src = imread("1.jpg"); Mat gray; cvtColor(src, gray, CV_BGR2GRAY); //1、 平移变换 int Xoffset = 30, Y原创 2017-11-19 14:35:08 · 697 阅读 · 0 评论 -
图像处理(八):线段检测之Hough变换
现阶段用最多的线段检测算法为Hough变换,对于Hough变换的原理部分已经有很多人写过,具体可以参考:点击打开链接,这里我总结一下理解Hough变换算法的难点。一、直线表示方法:1)最常用的方法为斜截式:y=kx+b,已知直线的斜率及y轴上的截距,即可确定一条参数。2)Hough变换中参数方程:rho = x * cos(theta) + y * sin(theta),原理部分一般都原创 2017-11-27 15:12:30 · 4687 阅读 · 1 评论 -
图像处理(九):特征点检测之Harris角点检测
图像可以看做是一个WxHxC(width x height x channels)的矩阵来表示。同一个物体,在不同观测角度、光照强度时,图像上的像素强度会发生改变,因此考虑用特征点来对图像进行描述。特征点指的就是能够显著描述图像特征的点。 Harris角点检测原理可以参考博客:https://blog.csdn.net/lwzkiller/article/details/5463...原创 2018-06-15 18:12:28 · 2433 阅读 · 0 评论 -
图像处理(十):模板匹配
模板匹配就是按照一定的相似性规则,在一张图像中寻找与模板最相似的区域。参考opencv官网:https://docs.opencv.org/3.4.1/de/da9/tutorial_template_matching.html模板匹配的过程如下:左上角小狗图像为定义的模板,下面的图片为待匹配图像,匹配的过程就是按照从左到右,从上到下的顺序,依次遍历全图,通过定义的相似度评...原创 2018-07-05 15:24:20 · 10881 阅读 · 11 评论 -
图像处理(十一):常用特征三剑客Haar、LBP和HOG
最常用到的三种特征分别为Haar特征、LBP特征及HOG特征,三种特征描述了三种不同的局部信息: 1) Haar描述的是图像在局部范围内像素值明暗变换信息; 2) LBP描述的是图像在局部范围内对应的纹理信息; 3) HOG描述的则是图像在局部范围内对应的形状边缘梯度信息。 三种特征在图像处理和机器学习领域都得到了广泛的应用,在此做一个总结,方便后面...原创 2018-09-17 12:49:38 · 9347 阅读 · 4 评论 -
图像处理(十二):特征检测之SIFT
SIFT(Scale-invariant Feature Transform)是由David Lowe 提出的一种具有平移、缩放、旋转等不变性的局部特征提取方法。 1、高斯金字塔 人与物体之间距离由近及远过程中,物体在视网膜上对应成像规律为:尺寸由大到小,物体轮廓由清晰到模糊。通过建立高斯金字塔来模拟这样一种人眼成像规律,来保障检测到的特征点具备尺度不变性。...原创 2018-09-21 16:23:21 · 682 阅读 · 0 评论 -
图像处理(十三):图像形态学
记忆力差的孩子得勤写日记!!膨胀和腐蚀《学习opencv》上有如下定义:膨胀是指一些图像(或图像中的一部分区域,称之为A)与核(称之为B)进行卷积。核可以是任意形状或大小,它拥有一个单独定义出来的参考点(anchor point)。多数情况下,核是一个小的中间带有参考点的实心正方形或圆盘。....巴拉巴拉.......其实简单一点,腐蚀就是我现在需要寻找一个像素点及其周围像素点中...原创 2016-08-18 20:16:47 · 642 阅读 · 0 评论