图像特征提取
一、图像边缘检测原理:
Edge pixels with significant grey-level variations form the set of edge points in an image, representing the most fundamental feature of an image. Edges are found between objects and backgrounds as well as regions, making them the most crucial reference for image segmentation. Despite being a positional indicator, edges are highly sensitive to changes in grey levels, making them a key feature in image matching.
在图像分割领域中存在两种主要技术:一种为边缘检测法(edge detection),另一种则为基于区域划分的方法(region segmentation)。这两种技术虽然各有侧重但彼此之间又相互补充形成了完整的图象处理体系。具体而言,在应用该技术时通常会识别出物体轮廓(object contour)即所谓的闭合曲线或边界线;而该区域内则包含了物体的具体形态特征如颜色纹理等细节信息。相比之下基于区域划分的方法则更加注重对整体图象的理解它能够通过分析不同部分之间的相似性来实现对图象内容的不同层次描述这种方法特别适用于复杂背景下的目标识别任务
通常将图像的边界划分为两类:一类为阶梯状边界特征(step edges),其相邻区域亮度差异显著;另一类则呈现屋顶形边界特征(roof edges),其灰度变化趋势呈现先递增后递减的状态。
edge detection serves as a fundamental technique in image processing and computer vision. Its primary objective is to identify points in digital images where there are significant changes in brightness. These variations include (i) depth discontinuities, (ii) surface orientation changes, (iii) material property alterations, and (iv) illumination variations. Edge detection is a key area of study within image processing and computer vision, particularly in feature extraction.
二、Canny算子边缘检测
Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:
好的检测- 算法能够尽可能多地标识出图像中的实际边缘。
好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。
在最小响应中,在图像处理阶段需要特别注意以下几点:首先,在最小响应中(即最低响应级别),图像中的边界仅能被标记一次;同时,在图像处理过程中需要注意避免将噪声误判为边界。
为了达到这些目标, Canny 方法采用了变分法, 这是一种通过求解特定功能来确定所需函数的方法. 其检测方法基于四个指数函数项之和, 然而这种表示与高斯函数的一阶导数非常接近.
三、角点及Harris角点的基本原理:
极值点即是角部区域,在某一特定方面具有突出特征的位置。换句话说, 你可自行设定其属性(通过设定特定熵值来进行角度区域检测)。也可能是两条直线相交的位置, 也可能是位于相邻两个主要方向差异明显的事物之间的位置
Harris角点的基本原理:
人眼识别角点的过程通常局限于一个局部的小区域或小窗口。当沿着各个方向滑动该特征的小窗格时,在某些位置会观察到该区域内亮度的变化程度较高。此时可以判断该区域存在角点。对于同一目标图像,在不同方向滑动该小窗格时,则可以观察到不同结果:若在同一位置始终显示较低亮度变化,则表明该区域内没有明显的角点;而当某个方向上的亮度变化显著而其他方向变化不明显,则可以推断该区域可能是由一条直线构成的线段。
四、SURF特征提取:
在SURF算法中,特征点的判据为某像素亮度的Hessian矩阵的行列式(DxxDyy-DxyDxy)为一个极值。由于Hessian矩阵的计算需要用到偏导数的计算,这一般通过像素点亮度值与高斯核的某一方向偏导数卷积而成;在SURF算法里,为提高算法运行速度,在精度影响很小的情况下,用近似的盒状滤波器(0,1,1组成的box filter)代替高斯核。因为滤波器仅有0,-1,1,因此卷积的计算可以用积分图像(Integral image)来优化(O(1)的时间复杂度),大大提高了效率。每个点需计算Dxx,Dyy,Dxy三个值,故需要三个滤波器;用它们滤波后,得到一幅图像的响应图(Response image,其中每个像素的值为原图像素的DxxDyy-DxyDxy)。对图像用不同尺寸的滤波器进行滤波,得到同一图像在不同尺度的一系列响应图,构成一个金字塔(该金字塔无需像SIFT中的高斯一样进行降采样,即金字塔每组中的每层图像分辨率相同)。
特征点的检测与SIFT一致,即若某点的DxxDyy-DxyDxy大于其邻域的26个点(与SIFT一致)的DxxDyy-DxyDxy,则该点为特征点。特征点的亚像素精确定位与SIFT一致。
其次,描述子的建立
为保证特征点描述子的旋转不变性,需对每个特征点计算主方向。计算主方向的过程如下:
统计以特征点为中心,正比于特征点尺度的某个数位半径,张角为60°的扇形区域内所有像素点的 sumX=(y方向小波变换响应)(高斯函数),sumY=(x方向小波变换响应)(高斯函数), 计算合成向量角度θ=arctan(sumY/sumX),模长sqrt(sumysumy+sumxsumx)。
将扇形沿逆时针旋转(一般取步长为0.1个弧度),以同样方法计算合成向量。
求出各方向扇形的合成向量模长最大值,其对应的角度即特征点主方向。
描述子的建立过程如下:
选定以特征点为中心的一块正方形区域,将其旋转与主方向对齐。
将正方形分为4x4的16个子区域,对每个区域进行Haar 小波变换(同样用积分图像加速),得到4个系数。
由上述两步,生成4x4x4=64维向量,即描述子,用它可以进行匹配等工作。
五、例题
该代码段使用imread函数读取名为circuit.tif的图像文件,并将其赋值给变量I。随后通过edge函数计算基于Prewitt算子的图像I的边缘并将其存储于变量BW1中;接着应用Canny算法对图像I进行更加精确的边缘检测并将结果存储于变量BW2中。随后,在图形窗口的第一个子图中展示计算得到的BW1边缘,在第二个子图中展示基于Canny算法得到的BW2边缘。

该代码用于从指定文件'pout.tif'读取图片并对其进行处理:
首先读取图片并截取前半部分;
然后创建子图窗口并在第一个子图中显示原始图片;
接着计算Harris角点并定位这些特征点;
随后将这些特征点标记为红色圆圈;
最后生成包含这些特征点颜色增强效果的新RGB图像

I = imread('cameraman.tif');
Points = detectSURFFeatures(I);
imshow(I); hold on;
plot(points.selectStrongest(10));
此步骤读不出图片,不知原因,求解。
