【图像边缘检测】基于matlab CNN灰度图像边缘提取【含Matlab源码 490期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、简介

0 前言
边缘检测是图像处理中最古老和最基本的问题之一。灰度 边缘检测算法的发展时间较长, 算法较多。基于梯度的边缘检 测算子最早出现, 基于优化目标函数的方法, Canny算子被广泛使用。另外还有基于其它技术的边缘检测方法, 如多尺度方法、统计过程、曲面拟和和支持向量等。 近年来, 由于数字彩色图像的广泛运用, 使彩色数字图像处理技术日益受到关注。现有的一些彩色图像边缘检测方法中, 有相当部分是灰度图像边缘检测的推广, 也即首先基于某一彩色分量红® 、绿(G) 或蓝(B) 的图像进行灰度图像边缘 检测, 然后再将每一独立分量的边缘图联合形成彩色图像的边缘。这些方法忽略了人眼对颜色的视觉感知, 没有考虑各颜色分量之间的联系, 往往得不到好的边缘检测效果。而基于彩色空间的边缘检测方法可以充分利用彩色图像中携带的彩色信息。为了充分考虑人眼对不同颜色感知程度的不同, 同时克服彩色空间角向量距离计算复杂的缺点, 本文使用彩色空间 Mahalanobis 距离作为彩色象素之间差异的度量。 所有的常规边缘提取方法输出结果都是二值图像。因此, 提取的边缘丢失了许多重要的信息, 尤其体现在有丰富细节和 微小变化的区域。为了解决这个问题, 利用细胞神经网络 (CNN) 多值输出的特点来进行彩色图像边缘检测。

1 细胞神经网络(CNN)
美国科学家 L.O.Chua 等人 1988 年提出的细胞神经网络 (CNN) 。由于其具有可并行计算、便于硬件实现等特性, 故它比传统方法有更大的潜力。 CNN的数学描述如下:
在这里插入图片描述
2 彩色空间
2.1 RGB 彩色空间
RGB( 红、绿、蓝) 是众多彩色空间的一种。由于红、绿、蓝三个通道里的灰阶值各自独立控制红、绿、蓝三种颜色的亮度, 形成数学上的一个三维空间。记录及显示彩色图像时, RGB是最常见的一种方案。因为彩色图像有三个分量, 彩色象素实际上是向量。在RGB 系统中, 每个彩色点都会在 RGB 坐标系中作为一个从原点延伸到那一点的向量来描述。 令c 代表 RGB 彩色空间中的任意向量:
在这里插入图片描述
该公式表明 c 的分量是一幅彩色图像在一个点上的 RGB 分量。彩色分量是坐标( x, y) 的函数, 表示为:
在这里插入图片描述
对一个大小为 M×N 的图像来说, 有 MN 个这样的向量, 其 中, x=0, 1, 2, …, M- 1 和 y=0, 1, 2, …, N- 1。
2.2 Mahalanobis距离
为了度量象素之间的差异, 有一个相似性度量是必要的。 最简单的度量之一是欧几里得距离。令z代表RGB空间中的 任意点, 如果它们之间的距离小于特定的阈值 D0, 则 z 与 a 是 相似的, z和a间的欧氏距离由下式给出:
在这里插入图片描述
这里下标 R, G, B 表示向量 a 和 z 的 RGB 分量。D( z, a) ≤D0 的点的轨道是半径为 D0 的实心球。包含在球内部和表面上的 点符合特定的彩色准则; 球外面上的点则不符合准则。 上式一个有用的推广是如下形式的距离测度:
在这里插入图片描述
这里 C 是一个实对角阵, 主对角线上的元素起到对各个维度 加权的作用。该距离称为 Mahalanobis 距离。D( z, a) ≤D0 的点的轨道描述了一个实心的三维椭球体, 其主轴取在最大的数据扩展方向上。当 C 等于单位矩阵 I 时, Mahalanobis 距离约简为欧几里得距离。

2.3 视见函数
人眼对各种不同波长的光有不同的灵敏度, 为了研究客观 辐射通量对人眼引起的主观感觉的强度之间的关系, 首先必须 了解人眼对各种波长光的灵敏度。但是, 辐射通量使人眼产生 亮暗感觉的程度是无法作出定量比较的, 幸好人的视觉能相当 精确地判断两种颜色光的亮暗感觉是否相同, 所以确定人眼的 光谱响应可将各种波长的光引起相同亮暗感觉所需要的辐射 通量进行比较, 对大量具有正常视力的观察者所做的实验表 明, 在比较明亮的环境, 人眼视觉对 λ=555 nm 左右的黄绿光最 敏感。设任何一种波长为 λ的光和 λ=555 nm 的黄绿光产生同 样亮暗感觉所需的辐射通量分别为 P! 和 P555 , 比值 V( !) =P555 / P! 就称为人眼视见函数。 各色光在人眼视觉上所引起的视见程度不同。在明亮环境 下, 人眼对波长为 555 nm 的黄绿光最敏感。而对红光和紫光的 敏感度最低。在阴暗环境下, 人眼对波长约为 510 nm 的绿光最 敏感, 对红光和紫光的敏感度最低。
在这里插入图片描述

⛄二、部分源代码

%文件名称: CNN_Edge_extraction.m
%文件描述: 基于CNN的灰度图像边缘提取的程序
%创
%参考文献: 《基于细胞神经网络的图像边缘提取算法研究》
%

clear;
clc;

I=imread(‘C:\Users\lenovo\Desktop\d083bc186611b136d0e72beeccee8850\CNN边缘检测\lena.jpg’);
[c,d]=size(I);
x=zeros(c,d);

for i=1:c;
for j=1:d;
n(i,j)=double(I(i,j))/255;
s(i,j)=2*(n(i,j)-0.5);
end
end
A=[0 0 0;
0 1.600 0;
0 0 0];
B=[-1.004 -1.004 -1.004;
-1.004 10.000 -1.004;
-1.004 -1.004 -1.004];
z=-1.405;

% A=[0 0 0;
% 0 2 0;
% 0 0 0];
% B=[-1 -1 -1;
% -1 8 -1;
% -1 -1 -1];
% z=-0.5;

% A=[0 0 0;
% 0 9.926055 0;
% 0 0 0];
% B=[-1.124332 -1.124332 -1.124332;
% -1.124332 9.670411 -1.124332;
% -1.124332 -1.124332 -1.124332];
% z=-1.915585;

circlenumber=0; %circlenumber是细胞神经网络要循环的次数
judge=0; %judge是判断网络稳定的标志,
%0是网络未达到稳定的标志,
%1表示网络已经稳定了

%当所有的状态x(i,j)的绝对值都大于1的时候,就认为网络趋于稳定
%下面是计算过程,直接迭代到完全收敛
while judge==0
circlenumber=circlenumber+1;
for i=2:c-1 %求出各个输出的值
for j=2:d-1
if x(i,j)>=1 %求f(x(i,j))的值,设置为f(i,j)
f(i,j)=1; %表示正向稳定时,取白色
elseif x(i,j)<=-1
f(i,j)=-1; %表示负向稳定时,取黑色
else
f(i,j)=x(i,j);%未稳定时,将状态直接输出
end
y(i,j)=f(i,j); %无论是否稳定,都将结果先直接输出
end
end
%其中边界条件是在图像外面的像素都设置为0;
%这里是将上面两行,下面两行,还有左右两行都设置成边界
%正式的处理单元是中间2到257行和2到257列的部分
for i=2:c-1
for j=2:d-1
xn(i,j)=z+A(2,2)*y(i,j)+B(2,2)*s(i,j)+B(1,1)*s(i-1,j-1)…
+B(1,2)*s(i-1,j)+B(1,3)*s(i-1,j+1)+B(2,1)*s(i,j-1)+B(2,3)…
*s(i,j+1)+B(3,1)*s(i+1,j-1)+B(3,2)*s(i+1,j)+B(3,3)*s(i+1,j+1);
%以上语句对应于CNN的公式,详见《细胞网络神经动力学》p5
end
end
%以下判断是不是已经全部收敛了,如果全部收敛了,就置judge=1
judge=1;
for i=2:c-1
for j=2:d-1
if abs(xn(i,j))<1
judge = 0;
end
end
end
%以下将xn(i,j)赋值给状态x(i,j)
for i=2:c-1
for j=2:d-1
x(i,j)=xn(i,j);
end
end
end

%接下去跳出wile循环,表示已经稳定了
%以下进行边缘的确定,f(i,j)=1对应的像素值设为1,
%f(i,j)=-1对应的像素值设为0
a=zeros(c,d);
for i=2:c-1
for j=2:d-1
if x(i,j)>=1
a(i,j)=1;
elseif x(i,j)<=-1
a(i,j)=0;
end
end
end

%以下输出原始图像和边缘图像a
figure(1);imshow(I);
title(‘原始图像’);
%以下输出y(i,j)状态图
figure(2);
imshow(a);
title(‘lena的CNN状态图’);
imwrite(a,‘lena_cnn.png’,‘png’);

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]张闯,迟健男,张朝晖,姜庆玲,王志良.一种基于CNN的彩色图像边缘检测算法[J].计算机工程与应用. 2008,(21)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值