图像识别教程笔记.docx

  1. 像素范围处理函数saturate_cast<uchar>()
  2. 定义掩膜:Mat kernel = (Mat_(char)(3,3)<<0,-1,0, -1,5,-1,0,-1,0);
  3. Filter2D(src, dst, src.depth(), kernel);
  4. 读Gray像素点:Scalar intensity = image.at<uchar>(row, col);( mage.at<uchar>(Point(row, col))
  5. 读RGC像素点:Vec3f intensity = img.at<Vec3f>(y,x);

    Float blue = intensity.val[0];

     

  6. 转数据类型src.convertTo(dst, CV_32F);
  7. 第6课 图像混合

    步骤:1. 直接处理

    void AddWeighted(src1, alpha, src2, alpha, gamma, dest);

  1. 第7课 调整图像亮度和对比度:

  1. 第8课 模糊图像一

模糊处理:为了给图像预处理时的降低噪声。

步骤:1. 直接处理

均值滤波:取周围像素的平均值。

API:Blur(src, dst, Size(3,3), Point(-1,-1));

高斯滤波:能比较好地保留边缘信息。

API:GaussianBlur(src, dst,(Size(11,11), sigmax, sigmay);

  1. 第9课 模糊图像二

步骤:1. 直接处理

中值滤波:将周围像素点排序后,取中值。中值滤波对椒盐噪声有很好的抑报作用。

中值滤波API:medianBlur(src, dst, ksize);

高斯双边滤波:对于像素值差别太大的像素不进行滤波。高斯双边滤波是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像化廓不变。

高斯双边滤波API:bilateralFilter(src, dst, radius, threshold, space);

 

  1. 第10课 膨胀与腐蚀

步骤:1. 直接处理

 

膨胀:高亮部分被扩张。掩膜可以不是正方形的,可是横向,可以是纵向。

腐蚀:高亮部分被蚕食

Mat getStructuringElement(MORPH_RECT, Size(5,5), Point(-1,-1));

Dilate(src, dest, kernel);

Erode(src, dest, kernel);

  1. 第11课 开操作与闭操作

步骤:1. 直接处理

 

开操作:先腐蚀后膨胀,可以去掉小的对象。Y

API:morphologyEx(img, dst, MOR_OPEN,element);

闭操作:先膨胀后腐蚀,可以填充小的洞。

API:morphologyEx(img, dst, MOR_CLOSE,element);

 

形态学梯度:膨胀减去腐蚀,可以保留边缘轮廓。

API:morphologyEx(img, dst, MOR_GRADIENT,element);

 

顶帽:原图像与开操作之间差值,可以分离比邻近点亮一些的斑块。

API:morphologyEx(img, dst, MOR_TOPHAT,element);

黑帽:闭操作与原科像的的差值,用来分离比邻近点暗一些的斑块。

API:morphologyEx(img, dst, MOR_BLACKHAT,element);

 

  1. 第12课 提供水平和竖直直线

    步骤:1.输入彩色图像imread;2.转像为灰度图像cvtcolor;3.转化为二值图像adaptiveThreshold;4.定义结构无素;5.开操作。

    API:adaptiveThreshold(src, dest, 255, ADAPTIVE_THRESH_MEAN_C,THRESH_BINARY,15,-1);

  2. 第13课 提供水平和竖直直线

步骤:1. 直接处理

 

下采样:缩小图像

上采样:放大图像

高斯不同:就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。

  1. 第14课 阈值操作

步骤:1. 直接处理

 

API:Threshold(src, dst,0,255,THRESH_TRIANGLE);

  1. 第15课 线性滤波

    步骤:1. 直接处理

     

    Robert算子

    Sobel算子

     

    拉普拉斯算子

  2. 第16课 边缘处理

API:copyMakeBorder(src, dst, top, bottom, left, right, bordertype, value);

  1. 第17课 Sobel算子边缘检测

步骤:1. 高斯滤波

2.转化为灰度图

3.Sobel处理

4. 计算图像A的像素绝对值,输出到图像B

5.AddWeighted

API:cv::Sobel

API:cv:: Scharr

 

  1. 第18课 Laplance算子边缘检测

API:Cv: Laplacian

  1. 第19课 Canny边缘检测

步骤:1.高斯模糊 – GaussianBlur,2灰度转换 – cvtColor,3.计算梯度 – Sobel/Scharr,4.非最大信号抑制,5.高低阈值输出二值图像

API:cv::Canny

  1. 第20课 .霍夫变换-直线

步骤:1.Canny边缘检测,2.霍夫直线检测。

API:cv::HoughLines

  1. 第21课 .霍夫圆变换

步骤:1.将图像转化到灰度空间,2.高斯滤波,3. 霍夫圆变换。

API:cv:: HoughCircles

  1. 第22课 像素映射

步骤:1.像素映射。

API:cv:: remap

  1. 第23课 直方图均衡化

步骤:1.将图像转化到灰度空间,2.直方图均衡化。

API:cv:: equalizeHist

  1. 第24课 直方图计算

步骤:1.将图像转化到灰度空间,2.直方图均衡化。

API:calcHist直方图计算,split把多通道图像分为多个单通道图像

 

  1. 第25课 直方图比较

步骤:1. 首先把图像从RGB色彩空间转换到HSV色彩空间cvtColor

2.计算图像的直方图,然后归一化到[0~1]之间calcHist和normalize;

3.使用四种比较方法之一进行比较compareHist。

API:cv::compareHist直方图比较

  1. 第26课 直方图反向投射

步骤:1.建立直方图模型

2.计算待测图像直方图并映射到模型中

3.从模型反向计算生成图像

API:cv::calcBackProject

 

  1. 第27课 模板匹配

步骤:1. 模板匹配。

API:cv:: matchTemplate

  1. 第28课 轮廓发现

步骤:1. 输入图像转为灰度图像cvtColor

2.使用Canny进行边缘提取,得到二值图像

3.使用findContours寻找轮廓

4.使用drawContours绘制轮廓

API:cv:: findContours,drawContours

  1. 第29课 凸包

步骤:1. 首先把图像从RGB转为灰度

2.然后再转为二值图像

3.在通过发现轮廓得到候选点

4.凸包API调用

5.绘制显示。

API:cv:: convexHull

  1. 第30课 轮廓周围绘制举行框和圆形框

步骤:1. 首先将图像变为二值图像

2.发现轮廓,找到图像轮廓

3.通过相关API在轮廓点上找到最小包含矩形和圆,旋转矩形与椭圆。

3.绘制它们。

 

API:cv:: approxPolyDP基于RDP算法实现,目的是减少多边形轮廓点数

boundingRect绘制一个矩形

minAreaRect返回旋转矩形

cv::minEnclosingCircle

cv::fitEllipse得到最小椭圆

  1. 第30课 图形矩

步骤:1. 提取图像边缘

2.发现轮廓

3.计算每个轮廓对象的矩

4.计算每个对象的中心、弧长、面积

 

API:cv:: moments

contourArea

arcLength

  1. 第31课 点多边形测试

步骤:1. 发现轮廓

2.对图像中所有像素点做点 多边形测试,得到距离,归一化后显示

API:cv:: pointPolygonTest

 

  1. 第32课 点多边形测试

步骤:1.将白色背景变成黑色-目的是为后面的变换做准备

2. 使用filter2D与拉普拉斯算子实现图像对比度提高,sharp

3. 转为二值图像通过threshold

4. 距离变换

5. 对距离变换结果进行归一化到[0~1]之间

6. 使用阈值,再次二值化,得到标记

7. 腐蚀得到每个Peak - erode

8.发现轮廓 – findContours

9. 绘制轮廓- drawContours

10.分水岭变换 watershed

11. 对每个分割区域着色输出结果

API:cv:: watershed, distanceTransform

 

 

 

猜你喜欢

转载自blog.csdn.net/zouxin_88/article/details/79804448