1 简介
图像最基本的特征是边缘,?所谓边缘是指其周围像素灰度?有阶跃变化或屋顶变化的那些像素的集合。它存在于目标与背?景、目标与目标、区域与区域之间,?不仅是图像分割所依赖的最?重要的特征,也是纹理特征的重要信息源和形状特征的基础,而?图像的纹理形状特征的提取又常常要依赖于图像分割。图像的?边缘是由灰度不连续性所反映的。经典的边缘提取方法是考察?图像的每个像素在某个区域内灰度的变化,?利用边缘邻近一阶?或二阶方向导数变化规律,用简单的方法检测边缘,这种方法称?为边缘检测局部算子法。边缘的种类可以分为两种:①阶跃性边缘,它两边的像素的灰度值有显著的不同;②屋顶状边缘,它位于灰度值从增加到减?少的变化转折点。对于阶跃性边缘,二阶方向导数在边缘处呈零?交叉;对于屋顶状边缘,二阶方向导数在边缘处取极值。如果一?个像素落在图像中某一个物体的边界上,?那么它的领域将成为?一个灰度级的变化带。对这种变化最有用的两个特征是灰度的?变化率和方向,它们分别以梯度向量的幅度和方向来表示。边缘?检测算子检查每个像素的邻域并对灰度变化率进行量化,?也包?括其梯度方向的确定,?大多数使用基于方向导数掩模求卷积的?方法。下面介绍几种常用的边缘检测算子:
2 部分代码
%% 基于遗传算法实现图像的边缘特征提取 clc clear all close all % Population information. generations = 10; popSize = 10; ? geneCap = 0.5; survivalCap = 0.1; breedNum = floor(popSize*geneCap); surviveNum = floor(popSize*survivalCap); ? mutateGains = [0.3, 25, 0.1, 3, 1]; ? % Noise information. noises = [0.05, 0.1]; noiseWeights = [0, 1, 1]; % Create EdgeDetector Object Array obj(1, popSize) = EdgeDetector(); obj(1, popSize).mutateGains=mutateGains; shareData.obj=obj; totCount=1;
3 仿真结果
4 参考文献
[1]甘勇, 马芳, 熊坤,等. 基于遗传算法和梯度算子的图象边缘检测[J]. 微计算机信息, 2007(02X):3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
|