Image Characteristics Extracton(MATLAB)
来源:互联网 发布:网络销售总结 编辑:程序博客网 时间:2024/05/16 11:24
Image Characteristics Extracton
图像的边缘检测
一阶微分算子一般借助空域微分算子通过卷集完成,但实际上数字图像中求导是利用差分近似微分来进行的。梯度对应一阶导数,梯度算子是一阶导数算子。对一个连续函数f(x,y),它在位置(x,y)梯度可表示为一个矢量:
对于数字图像,导数可以用差分来近似,则梯度可以表示为:
来在实际中常用小区域模板卷积近似计算。对Gx和Gy各用一个模板,所以需要两个模板组合起来构成一个梯度算子。根据模板的大小
Roberts算子:由Roberts提出的算子是一种利用局部差分算子寻找边缘的算子,边缘的锐利程度由图像灰度的梯度决定。梯度是一个向量,∇ f指出灰度变化的最快的方向和数量。因此最简单的边缘检测算子是用图像的垂直和水平差分来
近梯度算子:对每一个像素计算出以上式子的向量,求出它的绝对值,然后与阈值进行比较,利用这种思想就得到了Roberts交叉算子:
Prewitt边缘检测算子使用两个有向算子(水平+垂直),每一个逼近一个偏导数,这是一种类似计算偏微分估计值的方法,x,y两个方向的近似检测算子为:、
得出卷积模板为:
记图像M,阀值T
如在matlab中实现上述判断:
if(T> threshold)
newGrayPic(i,j)=255;
else
newGrayPic(i,j)=0;
End
Sobel算子和Prewitt算子都是加权平均,但是Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小。
Sobel 算子一种将方向差分运算与局部平均相结合的方法。该算子是在以f(x,y)为中心的3x3邻域上计算x和y方向的偏导数,即
得出卷积模板为:
记图像M,阀值T
运用二阶微分算子检测图像边缘
对于一维函数,其二阶导数它的差分函数为,
普拉斯算子:拉普拉斯算子是n维欧式空间的一个二阶微分算子。它定义为两个梯度向量算子的内积
对于1维离散情况,其二阶导数变为二阶差分
1)首先,其一阶差分为
2)因此,二阶差分为
3)因此,1维拉普拉斯运算可以通过1维卷积核[1,2,1]实现对于2维离散情况(图像),拉普拉斯算子是2个维上二阶差分的和(见式3.3),其公式为:
基于canny算子检测图像边缘
边缘检测提取主要分四步:去躁,计算梯度值与方向角,非最大化阈值,滞后阈值化。
例4.1-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);
>>
Harris角点的基本原理
对于图像
其中,
对于图像
其中,
可以将Harris图像角点检测算法归纳如下,共分以下五步:
1.计算图像
Ix=?I?x=I?(?1 0 1),Iy=?I?x=I?(?1 0 1)T
2. 计算图像两个方向梯度的乘积。
3. 使用高斯函数对
4.. 计算每个像素的Harris响应值
5. 在
4.2-1
I = imread('pout.tif');
I = I(1:150,1:120); |
subplot(1,2,1);
imshow(I);
title('输入图像');
CM = cornermetric(I);
corner_peaks = imregionalmax(CM);
corner_idx = find(corner_peaks = = ture);
[rgb] = 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('图像中的角点');
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维向量,即描述子,用它可以进行匹配等工作。
- Image Characteristics Extracton(MATLAB)
- image processing with MATLAB
- matlab----image function
- Matlab Intro - Image Processing
- Matlab Intro - Image Filter
- Matlab Intro - Image Structure
- [image processing]matlab
- [matlab]copy image
- Matlab Image Toolbox
- Matlab Intro - Image Media Filter
- Matlab Intro - Image Filter Sobel
- matlab image, imshow和images
- Matlab: image dilation and Erosion
- matlab 调整image的colormap
- MATLAB Codes of JPEG Image Compression for Gray-level Image
- Piotr's Image & Video Matlab Toolbox使用
- Image acquisition and basic operations in matlab
- Matlab undo axis tight axis image
- gcc静态库和动态库的区别及如何制作
- hdoj-2565-放大的X(解题报告)
- Matlab2014a下载、安装及破解完整教程
- linux-raid
- Android网络技术之OkHttp框架
- Image Characteristics Extracton(MATLAB)
- jQuery中的事件绑定
- 反射
- gcc编辑器具体编译过程
- Java套接字Socket编程--TCP参数
- 查找数组第i小的数-《算法导论》学习笔记十
- 字符串如何转变成整数?
- C++之运算符重载一:简单理解运算符重载
- 无锁算法——CAS原理