当前位置 : 主页 > 编程语言 > python >

【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 图像最基本的特征是边缘,所谓边缘是指其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。它存在于目标与背景、目标与目标、区域与区域之间,不仅是图像分割所依赖的

1 简介

图像最基本的特征是边缘, 所谓边缘是指其周围像素灰度 有阶跃变化或屋顶变化的那些像素的集合。它存在于目标与背 景、目标与目标、区域与区域之间, 不仅是图像分割所依赖的最 重要的特征,也是纹理特征的重要信息源和形状特征的基础,而 图像的纹理形状特征的提取又常常要依赖于图像分割。图像的 边缘是由灰度不连续性所反映的。经典的边缘提取方法是考察 图像的每个像素在某个区域内灰度的变化, 利用边缘邻近一阶 或二阶方向导数变化规律,用简单的方法检测边缘,这种方法称 为边缘检测局部算子法。边缘的种类可以分为两种:①阶跃性边缘,它两边的像素的灰度值有显著的不同;②屋顶状边缘,它位于灰度值从增加到减 少的变化转折点。对于阶跃性边缘,二阶方向导数在边缘处呈零 交叉;对于屋顶状边缘,二阶方向导数在边缘处取极值。如果一 个像素落在图像中某一个物体的边界上, 那么它的领域将成为 一个灰度级的变化带。对这种变化最有用的两个特征是灰度的 变化率和方向,它们分别以梯度向量的幅度和方向来表示。边缘 检测算子检查每个像素的邻域并对灰度变化率进行量化, 也包 括其梯度方向的确定, 大多数使用基于方向导数掩模求卷积的 方法。下面介绍几种常用的边缘检测算子:

【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码_遗传算法

【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码_灰度_02


【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码_遗传算法_03

【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码_边缘检测_04

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 仿真结果

【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码_灰度_05

【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码_边缘检测_06

4 参考文献

[1]甘勇, 马芳, 熊坤,等. 基于遗传算法和梯度算子的图象边缘检测[J]. 微计算机信息, 2007(02X):3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【边缘检测】基于遗传算法创建算子实现图像边缘检测附matlab代码_遗传算法_07


网友评论