尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

机器视觉(八):图像特征提取

机器视觉(八):图像特征提取 目录机器视觉一概述机器视觉二机器视觉硬件技术机器视觉三摄像机标定技术机器视觉四空域图像增强机器视觉五机器视觉与世界杯机器视觉六频域图像增强机器视觉七图像分割机器视觉八图像特征提取机器视觉九图像配准以下为正文区域和轮廓只包含对分割结果的原始描述在实际应用中我们还需要从区域或轮廓中确定一个或多个特征量。这些确定的特征量被称为特征。确定特征的过程被称为图像特征提取。 下方为相关MATLAB代码。图像特征提取 matlab程序https://download.csdn.net/download/m0_53966219/20044294?spm1001.2014.3001.5503一、概述1.图像特征的分类1图像的视觉特征边缘、轮廓、形状、纹理和区域等。2图像的统计特征灰度直方图特征、矩特征其中矩特征包括均值、方差、峰度及熵特征等。3图像变换系数特征傅立叶变换、离散余弦变换、小波变换等。4图像代数特征矩阵的奇异值2. 特征提取与特征选择1特征选择从一组特征中挑选出一些最有效的特征以达到降低特征空间维数的目的。2特征提取对原始特征进行变换得到的这些有利于分类、更本质、更少的新特征的过程。二、兴趣点提取1.什么是兴趣点兴趣点是指图像信号在二维空间上发生变化的区域通常情况下包括拐角点、交点和纹理等显著变化区域。2.兴趣点标定的方法1基于轮廓线的方法轮廓线具有曲率变化的特征可归类为结点端点等类型。如在图像中寻找脊和谷的方法对兴趣点进行标定。2基于图像强度的方法信号的自相关函数检测特征点灰度值的差大于某个门限时即认为该点是兴趣点。3基于参数模型的方法使用高斯卷积模型对拐角进行识别 使用最小化方法使得模板与观测信号最佳匹配。3.兴趣点的表达方法1尺度不变特征变换Scale-invariant feature transformSIFT使用了128维的向量对兴趣点特征进行表达该向量通过Lowe建立的码表形成。该方法可以做到缩放不变、亮度不变的特性。2可控滤波器和梯度不变方法使用高斯滤波器的方法求图像的梯度具有长度为13的维数。3区域矩不变特性通过改变统计矩的组合适用于图像的多种不变特性的应用。4频域分析法通过Gabor滤波器来捕捉图像在频率和方向上的细微变化描述的维度很高。三、Harris角点算法1.概述当滑动窗口处于一个兴趣点发生的地方无论从哪个方向移动该窗口都会发生图像强度灰度值的剧烈变化。基于图像灰度的方法通过计算点的曲率及梯度来检测角点避免了第一类方法存在的缺陷此类方法主要有Moravec算子、Forstner算子、Harris算子、SUSAN算子等。2.原理图像窗口滑动后灰度值变化计算小距离窗口滑动近似计算首先采用Sobel算子计算出梯度Ix和Iy再逐点计算其乘积最后使用高斯窗对该乘积图像的所有像素点进行卷积即可。3.MATLAB编程实现imgimread(F:\lena.png); imshow(img); img rgb2gray(img); %转换为灰度图像 img double(img); [m n]size(img); %获取图像尺寸 tmpzeros(m2,n2); %创建空矩阵tmp tmp(2:m1,2:n1)img; %将img赋值给tmp矩阵 Ixzeros(m2,n2); Iyzeros(m2,n2); Ezeros(m2,n2); %创建空矩阵Ix,Iy,E Ix(:,2:n)tmp(:,3:n1)-tmp(:,1:n-1); %求横向梯度Iy(2:m,:)tmp(3:m1,:)-tmp(1:m-1,:); %求纵向梯度 Ix2Ix(2:m1,2:n1).^2; %求梯度方向乘积 Iy2Iy(2:m1,2:n1).^2; IxyIx(2:m1,2:n1).*Iy(2:m1,2:n1); hfspecial(‘gaussian’,[7 7],2); %使用高斯核进行加权 Ix2filter2(h,Ix2); Iy2filter2(h,Iy2); Ixyfilter2(h,Ixy); Rmax0; Rzeros(m,n); for i1:m for j1:n M[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)]; R(i,j)det(M)-0.06*(trace(M))^2; %计算角点量 if R(i,j)Rmax RmaxR(i,j); %阈值判断 end end end rezeros(m2,n2); tmp(2:m1,2:n1)R; img_rezeros(m2,n2); img_re(2:m1,2:n1)img; for i2:m1 for j2:n1 if tmp(i,j)0.02*Rmax ... tmp(i,j)tmp(i-1,j-1) tmp(i,j)tmp(i-1,j) tmp(i,j)tmp(i-1,j1) ... tmp(i,j)tmp(i,j-1) tmp(i,j)tmp(i,j1) ... tmp(i,j)tmp(i1,j-1) tmp(i,j)tmp(i1,j) tmp(i,j)tmp(i1,j1) img_re(i,j)255; %标记角点 end end end img_remat2gray(img_re(2:m1,2:n1)); figure,imshow(img_re); %恢复并显示图像四、直线提取1.Hough变换原理在图像空间XY里设所有过点x,y的直线都满足方程式中p为直线的斜率q为直线的截距。也可以写成式中表示参数空间PQ中过点p,q的一条直线。图像空间到参数空间之间的转换可以用图表示2.直线提取原理开始时置数组A为零然后对每一个图像空间中的给定点让θ取遍区间上所有可能的值并根据直线公式算出对应的ρ再根据和的值设都已经取整对A累加对图像遍历后上式的值就是在点θρ处共线点的个数。值θρ也给出了直线方程的参数这样就得到了点所在的线。3.MATLAB编程实现img imread(rg.bmp); figure(1),subplot(1,2,1); imshow(img); title(原始图像); imgrgb2gray(img); % 灰度图像subplot(1,2,2);imshow(img); title(灰度图像); thresh[0.01,0.10]; %敏感度阈值 sigma3; %定义高斯参数 f edge(double(img),canny,thresh,sigma); %边缘检测 figure(2), imshow(f); title(canny 边缘检测); % 检测函数 [H, theta, rho] hough(f,Theta, 20:0.1:75); %0-1 % H-累计数组 thetaH:对应的θ实际上H的大小就是Rho×Theta % RhoH对应的ρ peakhoughpeaks(H,1); %峰值提取 hold on %保留当前的图和特定的坐标轴属性以便后续的绘图命令添加到现有的图表。 lineshoughlines(f,theta,rho,peak); %得到线段信息 figure(3);imshow(f,[]); title(霍夫变换检测结果); hold on ; for k1:length(lines) xy[lines(k).point1;lines(k).point2]; plot(xy(:,1),xy(:,2),LineWidth,4,Color,[.6 .6 .6]); end
返回列表