2019-11-15 13:57:37 BOTAK_ 阅读数 38

图像分割与边缘检测

图像分割在整个图像处理过程中的作用
1
一些概念:前景,背景

三大类方法

  1. 根据区域间灰度不连续搜寻区域之间的边界(奇异性检测,边缘连接,边界检测)
  2. 以像素性质的分布进行阈值处理(阈值处理)
  3. 直接搜寻区域进行分割(基于区域的分割)

奇异性检测

奇异性

图像的奇异性是指图像局部像素的平滑程度,一般情况下,图像的局部区域的像素值是光滑的只有在边界的部分图像的像素值是不光滑的,也就是说是奇异的。
奇异性主要有:点脉冲(遥感图像与卫星成像),线,边缘

  • 点检测 就是用一个8邻域模版
  • 线检测 一般而言有四个模版 水平,正向45度,垂直,反向45度,四个模版算子同时进行,然后取较大值属于的方向
  • 边缘检测 (一阶导数与二阶导数)
    • 梯度是图像对应二维函数的一阶导数,可以用第一,第二,以及无穷范数来衡量梯度的值,梯度的方向为图像的二维函数像素值变化率最大的方向
    • 由于图像由离散的像素点构成,下面的算子用差分近似偏导数
    • Roberts算子
    • Sobel算子
    • Prewitt算子
    • LOG算子
    • Canny算子
Roberts算子

Gx=[1001]G_x = \begin{bmatrix}1 & 0 \\0 & -1\end{bmatrix}

Gy=[0110]G_y = \begin{bmatrix}0 & 1 \\-1 & 0\end{bmatrix}
然后,Roberts算子采用第一范数衡量梯度的幅度
G(x,y)=Gx+Gy|G(x,y)| = |G_x| + |G_y|
Roberts算子对具有陡峭的低噪声图像效果比较好

Sobel算子

Gx=[101202101]G_x = \begin{bmatrix}-1 & 0 & 1\\-2 & 0 & 2 \\-1 & 0 & 1 \end{bmatrix}

Gx=[121000121]G_x = \begin{bmatrix}1 & 2 & 1\\0 & 0 & 0 \\-1 & -2 & -1 \end{bmatrix}
然后,Sobel算子采用无穷范数衡量梯度的幅度
G(x,y)=max(Gx,Gy)|G(x,y)| = max(|G_x| , |G_y|)
Sobel算子对灰度渐变和噪声较多的图像处理的比较好

Prewitt算子

Gx=[101101101]G_x = \begin{bmatrix}-1 & 0 & 1\\-1 & 0 & 1 \\-1 & 0 & 1 \end{bmatrix}

Gx=[111000111]G_x = \begin{bmatrix}-1 & 1 & 1\\0 & 0 & 0 \\-1 & -1 & -1 \end{bmatrix}
然后,Prewitt算子采用无穷范数衡量梯度的幅度
G(x,y)=max(Gx,Gy)|G(x,y)| = max(|G_x| , |G_y|)
Prewitt算子对灰度渐变和噪声较多的图像处理的比较好

Canny算子

Canny算子的梯度是用高斯滤波器的导数计算的,检测边缘的方法是寻找图像梯度的局部极大值。
Canny算法步骤如下:
① 用高斯滤波器平滑图像;
② 计算滤波后图像梯度的幅值和方向;
③ 对梯度幅值应用非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非局部极大值点置零以得到细化的边缘;
④ 用双阈值算法检测和连续边缘,使用两个阈值T1和T2(T1>T2),T1用来找到每条线段,T2用来在这些线段的两个方向上延伸寻找边缘的断裂处,并连接这些边缘。其中T1代表大于该值的肯定是边缘,T2表示小于该值的肯定不是边缘。

非极大值抑制:

沿幅角方向检测模值的极大值点,即边缘点,遍历8个方向图像像素,把每个像素偏导值与相邻像素的模值比较,取其MAX值为边缘点,置像素灰度值为0.

双阈值检测:

由于单阈值处理时,合适的阈值选择较困难,常常需要采用反复试验,因此采用双阈值检测算法。
对经过非极大值抑制后的图像作用两个阈值th1,th2,th1=0.4th2,两个阈值作用后得到两个图像1、2,较大阈值检测出的图像2去除了大部分噪声,但是也损失了有用的边缘信息。
较小阈值检测得到的图像1则保留着较多的边缘信息,以此为基础,补充图像2中的丢失的信息,连接图像边缘。

连接图像边缘

For Example
2
3

基于二阶导数的边缘检测

图像灰度二阶导数的过零点对应边缘点
4

Laplace算子

拉普拉斯(Laplace)算子是离散二维二阶导数的最简单形式

Marr算子

拉普拉斯-高斯边缘检测算子 LOG:Laplacian Of Gaussian;Marr算子
基本思想:由于拉普拉斯算子对于噪声比较敏感,因此采用先用高斯函数对图像滤波,然后对滤波后的图像进行拉普拉斯运算,算得的值等于零的点认为是边界点。(Marr和Hildreth 1980)
在实际使用中常常对LOG算子进行简化,使用差分高斯函数DOG代替LOG
各种边缘检测算子的比较

算子 特点
Roberts算子 利用局部差分算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备抑制噪声能力。该算子用于具有陡峭边缘且噪声低的图像效果较好。
Sobel算子和Prewitt算子 都是对图像先作加权平滑处理,然后再作微分运算,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度
Laplacian算子 是不依赖于边缘方向的二阶微分算子,对图像中的阶跃型边缘点定位准确,该算子对噪声非常敏感,它使噪声成分得到加强,这两个特性使得该算子容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘,同时抗噪声能力比较差
LOG算子 该算子克服了Laplacian算子抗噪声能力比较差的缺点,但在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法被检测到

边缘连接和边界检测

why?为什么要进行边缘连接

自然物体是实体,边缘必须连续切封闭,由于噪声、照明等产生边缘间断,使得一组像素难以完整形成边缘,因此,在边缘检测算法后,使用连接过程将间断的边缘像素组合成完整边缘

  • 局部处理
    分析图像中每个边缘点(x,y)的一个邻域内的像素,根据某种准则将相似点进行连接,由满足该准则的像素连接形成边缘,如何确定边缘像素的相似性,边缘像素梯度算子的响应强度,边缘像素梯度算子的方向(Canny 算子)
  • 整体处理之霍夫变换
    对于边界上的n个点的点集,找出共线的点集和直线方程。
    6

阈值处理

基本思想

7

基本全局阈值

计算基本全局阈值算法

  1. 选择一个T的初始估计值
  2. 用T分割图像,生成两组像素:G1由所有灰度值大 于T的像素组成,而G2由所有灰度值小于或等于T的 像素组成
  3. 对区域G1和G2中的所有像素计算平均灰度值µ1和µ2
  4. 计算新的阈值 T = (µ1+µ2)/2
  5. 重复步骤2到4,直到逐次迭代所得的T值之差小于 事先定义的参数T0
    8

基本自适应阈值

单一全局阈值存在的问题:
不均匀亮度图像无法有效分割

将图像进一步细分为子图像,并对不同的子图 像使用不同的阈值处理
解决的关键问题:如何将图像进行细分和如何为得到的子图像估计阈值
自适应阈值:取决于像素在子图像中的位置
9

最佳全局和自适应阈值

它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差别变小。因此,使类间方差最大的分割意味着错分概率最小

通过边界特性选择阈值

通过边界特性选择阈值
基本思想:
如果直方图的各个波峰很高、很窄、对称,且被很深的波谷分开时,有利于选择阈值
为了改善直方图的波峰形状,我们只把区域边缘的像素计算进直方图,而不考虑区域中间的像素
用微分算子,处理图像,使图像只剩下边界中心两边的值

这种方法有以下优点:
1)在前景和背景所占区域面积差别很大时, 不会造成一个灰度级的波峰过高,而另一 个过低
2)边缘上的点在区域内还是区域外的概率是相等的,因此可以增加波峰的对称性
3)基于梯度和拉普拉斯算子选择的像素,可以增加波峰的相对高度(对比度较大)

基于不同变量的阈值

RGB

基于区域的分割

区域生长的基本概念

区域生长的基本思想是将具有相似属性的像素集合起来构成区域。
具体先对每个需要分割的区域找一个种子像素作为生长的起始点,然后将种子像素周期邻域中与种子像素有相同或相似性质的像素合并到种子像素所在的区域。
将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素。

四叉树分解的分割法

将方形的原始图像分成四个相同大小的方块,判断每个方块是否满足一致性标准;如果满足就不再继续分裂,如果不满足就再细化成四个方块,并对细分得到的方块继续应用一致性经验。
这个迭代重复的过程直到所有的方块都满足一致性标准才停止。
最后,四叉树分解的结果可能包含多种不同尺寸的方块。

用平均灰度分割

基于PDE的图像分割

偏微分方法(Partial Differential Equations, PDE)的图像分割
优点:
1)直接对图像进行分析,是一种连续的模型,连续的微分算子代替了原始的离散滤波,更易于实现网格的划分和局部非线性分析。
2)分割提取的边缘是闭合的连续曲线,很好的避免传统方法先检查出边缘点在进行边缘连接的过程。
3)能在模型中引入图像的曲率、梯度等几何信息,同时还能够融入图像的先验知识和形状信息来指导模型分割

2017-04-19 19:54:00 The_star_is_at 阅读数 8468

实验三   图像轮廓提取与边缘检测


一、实验目的:

理解并掌握对二值图像进行轮廓提取的相关算法(比如,掏空内部点法),以及用于图像边缘检测和提取的典型微分算子(梯度算子和拉普拉斯算子)。

二、实验环境:

计算机、Windows XP操作系统,Matlab7.0

二、实验内容:

1、根据掏空内部点算法,运用Matlab编程实现二值图像的轮廓提取。

%以下适用于黑色背景白色前景的二值图像轮廓提取(以二值图像circles为例)

BW=imread('circles.png');     %二值图像circlesuint80黑,255

subplot(1,2,1);  imshow(BW);  title('二值图像');

[M, N]=size(BW);     %M行,N

BW_Buffer=BW;

for i=2: M-1

for j=2: N-1

if (BW(i, j)==255 & BW(i-1, j)==255 & BW(i+1, j)==255 & BW(i, j-1)==255 & BW(i, j+1)==255 & BW(i-1, j-1)==255 & BW(i-1, j+1)==255 & BW(i+1, j-1)==255 & BW(i+1, j+1)==255)    %说明BW(i, j)是前景中的一个内部点

       BW_Buffer(i, j)=0;    %掏空该内部点,即将该内部点置成与背景相同灰度

end

end

end

subplot(1,2,2);  imshow(BW_Buffer);  title('提取轮廓');


%以下适用于白色背景黑色前景的二值图像轮廓提取(以二值图像source为例)

BW=imread('source.bmp');      %二值图像sourceuint80黑,255

subplot(1,2,1);  imshow(BW);  title('二值图像');

[M, N]=size(BW);   %M行,N

BW_Buffer=BW;

for i=2: M-1

for j=2: N-1

if (BW(i, j)==0 & BW(i-1, j)==0 & BW(i+1, j)==0 & BW(i, j-1)==0 & BW(i, j+1)==0 & BW(i-1, j-1)==0 & BW(i-1, j+1)==0 & BW(i+1, j-1)==0 & BW(i+1, j+1)==0)      %说明BW(i, j)是前景中的一个内部点

       BW_Buffer(i, j)=255;   %掏空该内部点,即将该内部点置成与背景相同灰度

end

end

end

subplot(1,2,2);  imshow(BW_Buffer);  title('提取轮廓');

注意:使用掏空内部点的方法来提取二值图像的轮廓时,不能直接在原始二值图像矩阵上判断一个点掏空一个点,否则对前面像素的掏空操作会影响到对后面像素的判断结果。

解决方法:创建原始二值图像矩阵的副本(即图像矩阵BW_Buffer),在原始二值图像矩阵上执行判断操作,即依次判断每个像素点是否为前景中的内部点,如果是,则在图像矩阵BW_Buffer上执行掏空内部点的操作。

2、以灰度图像ricecameraman为例,利用Matlab图像处理工具箱中的edge函数,分别使用Roberts 算子、Sobel算子、Prewitt 算子对其进行边缘检测。

(1)函数格式: BW = edge(I, 'method', thresh)

(2)格式说明:edge函数输入灰度图像矩阵I,输出二值图像矩阵BW;参数'method'用于指定所使用的边缘检测算子,可以是'roberts''sobel''prewitt''log''canny';参数thresh用于指定梯度门限值(也称梯度阈值),图像中梯度值大于等于门限值thresh的像素用白色(1)表示,说明这些地方对应边缘,梯度值小于门限值thresh的像素用黑色(0)表示(edge function will ignore all edges that are not stronger than thresh)。若不指定参数thresh,则edge函数会自动选择阈值。所以edge函数最终将原始灰度图像中的边缘和背景用二值图像的形式展现出来,以突出边缘的位置,达到边缘检测的目的。

(3)程序如下:

I=imread('rice.png');

subplot(2,2,1);  imshow(I);  title('原始图像');

[BW1,thresh1]=edge(I,'roberts');  %进行Roberts算子边缘检测并返回门限值

[BW2,thresh2]=edge(I,'sobel');    %进行Sobel算子边缘检测并返回门限值

[BW3,thresh3]=edge(I,'prewitt');  %进行Prewitt算子边缘检测并返回门限值

subplot(2,2,2);  imshow(BW1);  title('Roberts算子边缘检测结果');

subplot(2,2,3);  imshow(BW2);  title('Sobel算子边缘检测结果');

subplot(2,2,4);  imshow(BW3);  title('Prewitt算子边缘检测结果');

若向原始图像中加入随机噪声(比如高斯噪声),之后再对噪声图像分别运用Roberts 算子、Sobel算子、Prewitt 算子、Log算子(高斯-拉普拉斯算子)进行边缘检测,观察检测结果,试比较4种边缘检测算子的抗噪声干扰能力。

I=imread('rice.png');

subplot(2,3,1);  imshow(I);  title('原始图像');

G=imnoise(I, 'gaussian');  %向原始图像中加入高斯噪声

subplot(2,3,2);  imshow(G);  title('噪声图像');

BW1=edge(G, 'roberts');  %进行Roberts算子边缘检测

BW2=edge(G, 'sobel');    %进行Sobel算子边缘检测

BW3=edge(G, 'prewitt');  %进行Prewitt算子边缘检测

BW4=edge(G, 'log');      %进行Log算子边缘检测

subplot(2,3,3);  imshow(BW1);  title('Roberts算子边缘检测结果');

subplot(2,3,4);  imshow(BW2);  title('Sobel算子边缘检测结果');

subplot(2,3,5);  imshow(BW3);  title('Prewitt算子边缘检测结果');

subplot(2,3,6);  imshow(BW4);  title('Log算子边缘检测结果');

2017-05-13 11:29:28 qq_18218335 阅读数 425

数字图像处理----行人检测

行人检测概述

目前行人检测方法主要分为两类

1.基于背景建模:利用背景建模方法,提取处前景运动的目标,在目标区域内进行特征提取,然后利用分类器进行分类,判断是否包含行人。

2.基于统计学的方法:根据大量的样本构建行人检测分类器。提取的特征主要有目标的灰度、边缘、纹理、颜色、梯度直方图等信息。分类器主要包括神经网络、SVM、adaboost 以及深度学习。

另外,目前的行人检测基本上都是基于法国研究人员Dalal在2005的CVPR发表的HOG+SVM的行人检测算法(Histograms of Oriented Gradients for Human Detection, Navneet Dalel,Bill Triggs, CVPR2005)

我们小组选择的就是上述HOG+SVM 的方法。

HOG 和 SVM 的简单介绍

机器学习中,支持向量机(英语:Support Vector Machine,常简称为SVM,又名支持向量网络[1])是在分类回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

上述内容来自维基百科-------https://zh.wikipedia.org/wiki/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA-------------------------------

通俗的讲,我们将大量的已经标注类别的数据(我们使用的时候就是行人/非行人两类)交给SVM训练,只要样本数据能够较好的体现两类数据的区别,在训练好SVM之后,我们输入未知分类的数据,SVM就可以比较准确的给出我们此数据的类别(是否包含行人)

 

方向梯度直方图英语:Histogram of oriented gradient,简称HOG)是应用在计算机视觉图像处理领域,用于目标检测的特征描述器。这项技术是用来计算局部图像梯度的方向信息的统计值。HOG描述器是在一个网格密集的大小统一的细胞单元(dense grid of uniformly spaced cells)上计算,而且为了提高性能,还采用了重叠的局部对比度归一化(overlapping local contrast normalization)技术。

上述内容来自维基百科-------https://zh.wikipedia.org/wiki/%E6%96%B9%E5%90%91%E6%A2%AF%E5%BA%A6%E7%9B%B4%E6%96%B9%E5%9B%BE-

翻译成比较容易理解的话就是:图像中物体的局部外观和形状能够通过其局部梯度或边缘信息很好地表征和描述,即HOG可以描述图像中物体的局部外观和形状。结合上面的SVM,我们可以通过HOG提取大量的图片的特征信息,并标注图片是否有行人,以及行人的位置,并交给SVM训练。在大量数据的训练之后,SVM就可以区分行人。

HOG算法实现

假设识别窗口大小为:(winSize.width,winSize.height)。HOG将梯度方向(0—>360°)划分为nbins个区间。然后设置一个block其大小为(blockSize.width,blockSize.height),每个block分为许多cell(cellSize.width,cellSize.height)。对每个cell,算出每一点的梯度方向和模,按梯度方向增加每个bin 的值,形成每个cell 的梯度直方图。cell串联成块,块内归一化直方图,消除光照阴影的映像。block是在图像中边移动边计算的,其移动的方向为:从上到下,从左到右。步长blockStride为(blockStride.width,blockStride.height)。有了每个block的梯度直方图之后,然后多个block内的直方图向量一起串联成一个大的HOG特征向量。这个向量的大小如下面的公式:

nbins*

(blockSize.width/cellSize.width)*

(blockSize.height/cellSize.height)*

((winSize.width-blockSize.width)/blockStride.width+1)*

((winSize.height-blockSize.height)/blockStride.height+1);

即梯度方向数*每个block包含的cell 的个数*(水平方向移动次数+1)*(垂直方向移动次数+1)

对于opencv 中的实现,该值为:9*(16/8)*(16/8)*((64-16)/8+1)*(128-16)/8+1))=3780。这就是这个窗口对应的特征了。

结合图片便于理解

窗口大小

块大小 blockSize

cell大小

  • 梯度计算

    梯度算子:水平边缘算子: [-1, 0, 1] ;垂直边缘算子: [-1, 0, 1]T 

 

    图像中像素点(x,y)的梯度为:

作者测试后发现模板越简单效果越好,因此HOG 的梯度计算就是这么简单。

  • 直方图统计的方向单元划分

所谓的梯度直方图,就是一块区域的各个梯度方向的直方图。这里有一个选择就是梯度方向个数的选取,作者测试后发现把方向分为9个通道效果最好。另外,每个块的形状可以是矩形或圆形的,梯度直方图的方向取值可以是0-180°或者0-360°,取决于梯度是否有正负。

  • HOG描述器中的区块block

为了克服光照不均匀以及前景和背景的对比差异,梯度直方图必须归一化。HOG的做法是将连接在一起的cell串联到一起组成block,然后block内进行归一化。HOG描述器是block 在前面描述的识别窗口内边移动(原论文中移动步长一般为block 大小的一半)边计算并串联起来得到的。因此这些block通常会重叠,每个方格不只一次影响了最后的描述器,这样会有信息的冗余,但是能提高算法的精确度。主要有两种block。矩形R-HOG,原形C-HOG。我们选择矩形R-HOG,R-HOG由三个参数表示:每个block多少cell、每个cell有几个像素、每个通道有几个通道。在作者的测试中,发现当block size过大或者过小,对于局部图像的适应能力将会减弱 。block 内 cell 的个数为 3*3 或者2*2 的时候会有性能提升,另外,cell大小为6*6 ~ 8*8 的时候识别率比较好。这就有一个问题,就是应该如何选择cell 大小和block 大小,作者给出的答案是,使用特征选择机制如(AdaBoost)来帮助我们选择参数,而不是手动现实编码。这里我们取cell 8*8,block 2*2 cell

  • 为每个cell构建梯度方向直方图

这一步是为了统计局部图像梯度信息然后进行量化,得到局部图像区域的特征描述向量,同时能够保持对图像中人体对象的姿势和外观的若敏感性。

我们采用9个bin的直方图来统计这8*8 个像素的梯度信息。也就是将cell 的梯度方向360°分成9个方向块。这样梯度方向与bin有对应关系如下:

1 [0,40)
2 [40,80)
3 [80,120)
4 [120,160)
5 [160,200)
6 [200,240)
7 [240,280)
8 [280,320)
9 [320,0)

这样就可以得到这个cell 的梯度方向直方图了,就是该cell 对应的9维特征向量(因为有9个)。另外,这里直方图的大小就是梯度的大小,作者测试后这样的效果最好,不用另外进行直方图与梯度大小的代数变换。

  • 把cell组合成大的块(block),块内归一化梯度直方图

由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大,需要对梯度强度做归一化。归一化能够进一步对光照、阴影和边缘进行压缩。

  1. 将多个临近的cell组成一个block块,然后对其梯度方向直方图向量

  2. 采用L2-Norm with Hysteresis threshold 方式进行归一化,即将直方图向量中横坐标最大值限制为0.2 一下,然后再重新归一化依次。

一个cell 会被多个block“共享”,另外,每个“cell”在被归一化时都是“block”无关的,每个cell 在其所属的block 中都会被归一化依次,得到一个vector。每个cell 的特征会议不同的结果多次出现在最后的特征向量中。

  • 归一化以及四种归一化方法的介绍

Dalal和Triggs采用了四种不同的方法对区间进行归一化,并对结果进行了比较。引入image表示一个还没有被归一化的向量,它包含了给定区间(block)的所有直方图信息。image 表示 imagek 阶范数,这里的image。用 image 表示一个很小的常数。这时,归一化因子可以表示如下:

image

  还有第四种归一化方式:L2-Hys,它可以通过先进行L2-norm,对结果进行截短(clipping),就是将直方图的最大值限制到0.2,然后再重新归一化得到。

作者发现:采用L2-Hys, L2-norm, 和 L1-sqrt方式所取得的效果是一样的,L1-norm稍微表现出一点点不可靠性。但是对于没有被归一化的数据来说,这四种方法都表现出来显著的改进

其中范数的概念如下:

$L$)X]1P]CLGRFB_1CM$6TV

  • 生成HOG特征描述向量

这一步相对比较简单,将所有归一化后的block 梯度直方图串联起来就形成了最后的HOG特征描述向量。

 

 

参考链接

http://blog.csdn.net/ttransposition/article/details/11880425

http://blog.csdn.net/ttransposition/article/details/41805767

http://blog.csdn.net/ttransposition/article/details/11874285

http://blog.csdn.net/zhazhiqiang/article/details/21047207

http://blog.csdn.net/qianqing13579/article/details/46509037

http://blog.csdn.net/carson2005/article/details/7841443

https://zh.wikipedia.org/wiki/%E6%96%B9%E5%90%91%E6%A2%AF%E5%BA%A6%E7%9B%B4%E6%96%B9%E5%9B%BE#.E6.8F.8F.E8.BF.B0.E5.99.A8.E5.8D.80.E5.A1.8A

http://www.cnblogs.com/lxy2017/p/3926760.html

http://blog.csdn.net/abcjennifer/article/details/7365651

2019-06-18 22:25:41 weixin_42572978 阅读数 26

本文将开始学习使用opencv进行图像处理。

颜色空间转换

几何转换

图像阈值

图像平滑

形态学梯度

图像梯度

Canny边缘检测

图像金字塔

OpenCV轮廓

直方图

图像变换

模板匹配

Hough直线变换

Hough圆环变换

分水岭算法图像分割

使用GraCut算法交互式前景提取

2019-07-02 22:08:48 qq_37486501 阅读数 155

数字图像处理中的图像分割

  1. 图像分割: 将图像分割成若干个互不相交的区域
  2. 基于灰度的不连续性
    (1): 边缘检测
    [
    基于一阶微分的各种梯度算子:
    基于二阶微分的拉普拉斯算子
    高斯-拉普拉斯算子(LOG算子): 用高斯平滑去噪, 用拉普拉斯进行边缘检测
    ]
    (2):轮廓提取与跟踪
    轮廓提取: 掏空内部点, 背景白前景黑, 从左上角扫描为“黑”=0, 且8邻域也都为黑, 则说明该像素点是目标物体内部点, 置”白“=1
    轮廓跟踪: 顺序地找出目标区域边界上的像素点, 以跟踪目标边界, 并且同时记录边界信息(边界链码)
    (3):Hough变换
  3. 基于灰度的相似性
    (1):灰度阈值分割:
    用一个或者几个灰度阈值T 将图像的灰度级范围分成几个部分, 将每个像素的灰度值和阈值相比较, 根据比较结果将像素归类——前景目标与背景区分开
    (2): 基于区域的分割
    [
    区域生长: 灰度相似则扩展
    区域的分裂与合并 : 按某种一致性准则, 不断分裂, 合并区域
    ]

opencv3处理图像

阅读数 31

没有更多推荐了,返回首页