缺陷处理手法

一、预处理+分割(二值化)blob +特征检测

*区域的特征总结
*area':区域的面积
*'row':求区域最小不带方向的外接矩形的中心行坐标
*'column':求区域最小不带方向的外接矩形的中心列坐标
*'row1':求区域最小不带方向的外接矩形的左上角行坐标
*'column1':求区域最小不带方向的外接矩形的左上角列坐标
*'row2':求区域最小不带方向的外接矩形的右下角行坐标
*'column2':求区域最小不带方向的外接矩形的右下角列坐标
*width':求区域最小不带方向的外接矩形的宽
*'height':求区域最小不带方向的外接矩形的高
*ratio'   高宽比  'height'/width
*'circularity':圆度
*compactness' 紧密度     =     周长的平方/(4*面积*π)
*'contlength':周长
*'convexity':凸性
*'rectangularity':矩形度
*'ra':椭圆长半轴
*'rb':椭圆短半轴
*‘phi':椭圆角度
*anisometry: 各项异性         =椭圆长半轴/椭圆短半轴
*bulkiness:'蓬松度                =π*长半轴*短半轴/区域面积    ---针对较长,面积小的,蓬松度大
*'struct_factor:'结构因子       =各向异性*蓬松度-1
*'outer_radius':最小外接圆的半径
*'inner_radius':最大内接圆半径
*'inner_width':最大内接矩形的宽   不带方向
*'inner_height':最大内接矩形的高  不带方向
*'dist_mean': 区域边界到重心平均距离
*'dist_deviation:'区域边界到重心标准差
*'roundness':圆度
*'num_sides':多边形的边数
*'connect_num':连通数         
*'holes_num':孔洞数   -----封闭的孔洞数
*'area_holes':孔洞面积
*'max_diameter':最大直径
*'orientation':角度
*'euler_number':欧拉数 =连通数-孔洞数
*'rect2_phi': 区域求最小外接矩形-带方向角度
*'rect2_len1':区域求最小外接矩形-带方向半宽
*'rect2_len2':区域求最小外接矩形-带方向半高

灰度膨胀(灰度闭运算)---增加亮像素比例----(局部极大值) gray_closing_shape    

灰度腐蚀(灰度开运算)---增加暗像素比例----(局部极小值)gray_opening_shape

二、差分思想-定位(转标准位置 跟随)

1.创建差分模型  create_variation_model   

a标准     

b鲁棒(抗干扰能力)(训练的图像可以有几张不良)

c直接 不用训练与prepare_direct_variation_model搭配使用

2.训练    train_variation_model   (多张图转标准位置后训练,得到一个平均图像)

3.获得标准图   get_variation_model   (均值图像,边缘图)

4.设置参数   prepare_variation_model  (绝对最小阈值,相对最小阈值)

---值越大,要求越高(容易出现检测不出来清空)

---值越小,要求低(容易出现误判)

5.差分比较   compare_variation_model

注意:无缺陷图,比较后输出的是圈杠(计数的话是1),所以对其区域可以做处理

1.开运算  2.面积筛选

6.清除差分模型  clear_variation_model

自己实现差分思想

difference:求俩区域差集,利用差分思想实现缺陷检测

1.创建模板匹配

2.二值化拉出一个标准区域(例如字符检测中字符),用作差分比较

3.查找模板,做区域跟随

4.区域形状转换,抠图,二值化一系列操作,提取出与标准区域一致的区域

5.求标准区域,每张图跟随的区域俩者的差集

6.判断差集,计数

三、测量拟合的方式

四、频域角度来分析

 傅里叶变换-----得到频谱图
     1)空间域到频域变换的算子
              fft_image  快速傅里叶变换(正变换)   fft_image_inv快速傅里叶变换(逆变换)
              fft_generic (傅里叶变换的正变换  逆变换)rft_generic
    2)学会看懂大致频谱图
              1.频谱图中每一个点代表的不是像素,而是频率(段),这点的亮度表示的是该频率的含  量大小(振幅)
                如果亮点越宽,说明该频段含量丰富
              2 频谱图中频谱中心是低频成分,从中心往四周频率逐渐变大,低频成分代表图像灰度变换不剧烈的地方
                高频成分代表图中灰度变换剧烈的地方   
             3  频谱图中如果某个方向有亮点或者亮线,说明这个方面有变化的边(线)
             4 频谱图是上下左右对称
             空间域的卷积=频域乘积
   3)频域处理方式
1  手动    

2  滤波器 convol_fft 频域乘法

低通滤波器(直通gen_lowpass)  中间部分为1 ,其他为0,参数值2越小,图像越平滑(值越小,中间部分越小,频谱图中心是低频成分,所以更平滑)

高通滤波器(直通 gen_highpass)中间部分为0,其他为1.突出边缘轮廓(即变化剧烈的部分)

参数2值越大,图像高频部分要求越高(展示更剧烈的部分)

差分滤波器sub_image   

高斯滤波器 gen_gauss_filter   平滑系数越小,原斑越大

正弦带通滤波器 gen_sin_bandpass-划痕) 系数越大,原斑越大

 4)理解频域

频域是从信号的角度来分析,利用傅里叶变换将空间域的图像,转到频域来分析

五、光度立体法

原理:表面法向量重建 平面上的凹凸  金属上的字
实现:photometric_stereo    光度立体重建   配合 derivate_vector_field 计算曲率图
slant:光轴与光源主投射方向的角度  

Tilts  光的主投射方向在平面内投影线与水平向右的角度

六、机器学习

原理:mlp  多层神经感知Multi  Layer   Perceptron-浅度学习  欠拟合 增加样本


第一套 :

create_ocr_class_mlp  创建分类器

参数:

特征名称(输入层)

输出名称(输出层)

隐式节点数(中间层,该值越大,训练速度相对慢,准确度高,注意不能过拟合)

特征值预处理:  填写none  normalization(归一化) 后面参数无效

append_ocr_trainf  添加样本  ----字符名称:数组与创建的输出名称一致

trainf_ocr_class_mlp  训练(本质调节权重系数)

权重系数:值越小,迭代次数多

误差阈值:输出误差,每次迭代的误差

do_ocr_single_class_mlp 识别

clear_ocr_class_mlp 清除

write_ocr_class_mlp  保存分类器

read_ocr_class_mlp 读分类器


第二套:

create_class_mlp  创建分类器

输入层特征个数    中间层隐式节点数   输出种类数

add_sample_class_mlp  添加样本

train_class_mlp  训练

classify_class_mlp  识别
clear_class_mlp  清除模型
write_class_mlp  保存分类器

read_class_mlp  

第三套:

create_class_mlp 创建分类器

add_samples_image_class_mlp 添加样本

train_class_mlp 训练

classify_image_class_mlp 识别
clear_class_mlp 清除模型
write_class_mlp  保存分类器

read_class_mlp 读分类器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值