基于模糊规则的金属腐蚀类型判断算法Matlab仿真

一、理论基础

A不平整金属腐蚀

金属表面为不规则表明。识别方法:金属表面是否为直线。

基于模糊规则的金属腐蚀类型判决算法matlab仿真_斜率

B金属腐蚀点

金属腐蚀部分的长大于宽,并且它的面积不能远远大于它的长度。(V=L/D,V>1.5)

基于模糊规则的金属腐蚀类型判决算法matlab仿真_模糊判决_02

C金属坑腐蚀

金属腐蚀部分的长度几乎相等与宽度。(V=L/D,0.67<V<1.5)

基于模糊规则的金属腐蚀类型判决算法matlab仿真_模糊判决_03

D金属点腐蚀

金属腐蚀部分的长度远大于宽度(V=L/D,V<0.67)

基于模糊规则的金属腐蚀类型判决算法matlab仿真_模糊判决_04

E金属层下腐蚀

金属腐蚀部分不与金属表面接触。可以视为,金属黑点到金属表面的距离大于0. (d>0)

基于模糊规则的金属腐蚀类型判决算法matlab仿真_理论基础_05

F金属层腐蚀

金属层腐蚀也属于金属层下腐蚀,只是它的金属腐蚀面积非常大,并且金属腐蚀部分表面的斜率L〈0.5,并且腐蚀率大于所有金属面积的0.1.

基于模糊规则的金属腐蚀类型判决算法matlab仿真_金属腐蚀类型识别_06

G晶间腐蚀

晶间腐蚀的特点是沿晶界的金属腐蚀区域而存在,金属腐蚀是沿着金属纹理而产生的,金属腐蚀部分的颜色比金属纹理更深。

基于模糊规则的金属腐蚀类型判决算法matlab仿真_模糊判决_07

H晶间腐蚀之向内局部纹理

这个和G类似,但是其特点是由表层向内的局部纹理腐蚀

基于模糊规则的金属腐蚀类型判决算法matlab仿真_斜率_08

      整个算法的基本流程如下所示:

基于模糊规则的金属腐蚀类型判决算法matlab仿真_模糊判决_09

二、核心程序

登录后复制

clc;clear;close all;warning off;addpath 'func\'%读取图片I  = imread('samples\008.jpg');%形态学处理[Is,I_gray] = func_preprocess(I);%特征提取%根据如下的几个要点来提取特征;%提取金属表层数据,区分是否:不平整金属腐蚀;NUM       = func_type1_feature(Is);Feature{1}= NUM;%提取金属腐蚀区域,计算面积和长宽比例,区分是否是金属腐蚀点、金属坑腐蚀、金属点腐蚀;[Ws,Hs]   = func_type2_feature(Is);if isempty(Ws) == 0Feature{2}(:,1)= Ws;Feature{2}(:,2)= Hs;elseFeature{2}= [];   end%提取金属腐蚀区域中面积较小的,统计其面积及个数,判断是否存在金属层下腐蚀;Area1     = func_type3_feature(Is);Feature{3}= Area1;%判断是否存在面积大于金属区域面积0.1腐蚀区域,判断是否有金属层腐蚀;Area2     = func_type4_feature(Is);Feature{4}= Area2;%提取纹理和腐蚀区域,如果纹理和腐蚀区域重合,则说明是晶间腐蚀,如果纹理和腐蚀区域不重合,则说明是穿晶腐蚀;[Area3,N] = func_texture_total(Is);Feature{5}= [Area3,N];%模糊逻辑进行识别flag = func_fuzzy_check(Feature);%显示具体腐蚀类型func_type_check(flag);1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.




登录后复制

function flag = func_fuzzy_check(Feature);flag1=0;flag2=0;flag3=0;flag4=0;flag5=0;flag6=0;flag7=0;flag8=0;Feature001 = Feature{1};if isempty(Feature001) == 0   flag1 = func_fuzzy1(Feature001);else   flag1 = 0;endFeature234 = Feature{2};if isempty(Feature234) == 0   [flag2,flag3,flag4] = func_fuzzy2(Feature234);else   flag2=0;   flag3=0;   flag4=0;endFeature005 = Feature{3};if isempty(Feature005) == 0   flag5 = func_fuzzy3(Feature005);else   flag5 = 0;endFeature006 = Feature{4};if isempty(Feature006) == 0   flag6 = func_fuzzy4(Feature006);else   flag6 = 0;endFeature078 = Feature{5};if isempty(Feature078) == 0   [flag7,flag8] = func_fuzzy5(Feature078);else   [flag7,flag8] = 0;endflag = [flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8];1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.

三、测试结果

基于模糊规则的金属腐蚀类型判决算法matlab仿真_理论基础_10




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空