图像特征提取

    xiaoxiao2021-03-25  181

    一、图像边缘检测原理:

       边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据。由于边缘是位置的标志,对灰度的变化不敏感,,因此,边缘也是图像匹配的重要的特征。

    边缘检测和区域划分是图像分割的两种不同的方法,二者具有相互补充的特点。在边缘检测中,是提取图像中不连续部分的特征,根据闭合的边缘确定区域。而在区域划分中,是把图像分割成特征相同的区域,区域之间的边界就是边缘。由于边缘检测方法不需要将图像逐个像素地分割,因此更适合大图像的分割。

    边缘大致可以分为两种,一种是阶跃状边缘,边缘两边像素的灰度值明显不同;另一种为屋顶状边缘,边缘处于灰度值由小到大再到小的变化转折点处。

    边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。 

    二、Canny算子边缘检测

    Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:

    好的检测- 算法能够尽可能多地标识出图像中的实际边缘。 

    好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。

    最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。

    为了满足这些要求 Canny 使用了变分法,这是一种寻找满足特定功能的函数的方法。最优检测使用四个指数函数项的和表示,但是它非常近似于高斯函数的一阶导数。

    三、角点及Harris角点的基本原理:

      角点就是极值点,即在某方面属性特别突出的点。当然,你可以自己定义角点的属性(设置特定熵值进行角点检测)。角点可以是两条线的交叉处,也可以是位于相邻的两个主要方向不同的事物上的点。

    Harris角点的基本原理:

       人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段。

    四、SURF特征提取: 在SURF算法中,特征点的判据为某像素亮度的Hessian矩阵的行列式(Dxx*Dyy-Dxy*Dxy)为一个极值。由于Hessian矩阵的计算需要用到偏导数的计算,这一般通过像素点亮度值与高斯核的某一方向偏导数卷积而成;在SURF算法里,为提高算法运行速度,在精度影响很小的情况下,用近似的盒状滤波器(0,1,1组成的box filter)代替高斯核。因为滤波器仅有0,-1,1,因此卷积的计算可以用积分图像(Integral image)来优化(O(1)的时间复杂度),大大提高了效率。每个点需计算Dxx,Dyy,Dxy三个值,故需要三个滤波器;用它们滤波后,得到一幅图像的响应图(Response image,其中每个像素的值为原图像素的Dxx*Dyy-Dxy*Dxy)。对图像用不同尺寸的滤波器进行滤波,得到同一图像在不同尺度的一系列响应图,构成一个金字塔(该金字塔无需像SIFT中的高斯一样进行降采样,即金字塔每组中的每层图像分辨率相同)。 特征点的检测与SIFT一致,即若某点的Dxx*Dyy-Dxy*Dxy大于其邻域的26个点(与SIFT一致)的Dxx*Dyy-Dxy*Dxy,则该点为特征点。特征点的亚像素精确定位与SIFT一致。 其次,描述子的建立 为保证特征点描述子的旋转不变性,需对每个特征点计算主方向。计算主方向的过程如下: 统计以特征点为中心,正比于特征点尺度的某个数位半径,张角为60°的扇形区域内所有像素点的 sumX=(y方向小波变换响应)*(高斯函数),sumY=(x方向小波变换响应)*(高斯函数), 计算合成向量角度θ=arctan(sumY/sumX),模长sqrt(sumy*sumy+sumx*sumx)。 将扇形沿逆时针旋转(一般取步长为0.1个弧度),以同样方法计算合成向量。 求出各方向扇形的合成向量模长最大值,其对应的角度即特征点主方向。 描述子的建立过程如下: 选定以特征点为中心的一块正方形区域,将其旋转与主方向对齐。 将正方形分为4x4的16个子区域,对每个区域进行Haar 小波变换(同样用积分图像加速),得到4个系数。 由上述两步,生成4x4x4=64维向量,即描述子,用它可以进行匹配等工作。

    五、例题

    1.I=imread('circuit.tif'); BW1=edge(I,'prewitt');  BW2=edge(I,'canny'); subplot(1,2,1),imshow(BW1); subplot(1,2,2),imshow(BW2);

    2.I=imread('pout.tif');%确定待检测的图像区域并显示 I=I(1:150,1:120); subplot(1,2,1); imshow(I); title('输入图像'); CM=cornermetric(I);%对图像进行Harris角点提取 corner_peaks=imregionalmax(CM);%查找矩阵中最大值并显示 corner_idx=find(corner_peaks==true); [r g b]=deal(I); r(corner_idx)=255; g(corner_idx)=255; b(corner_idx)=0; RGB=cat(3,r,g,b); subplot(1,3,3); imshow(RGB); title('图像中的角点')

    3.I=imread('cameraman.tif'); POINTS=detectSURFFeatures(I); imshow(I);hold on; plot(POINTS.selectStrongest(10));

    此步骤读不出图片,不知原因,求解。

    转载请注明原文地址: https://ju.6miu.com/read-12238.html

    最新回复(0)