图像处理入门5-特征提取

特征提取

图像特征提取属于图像分析的范畴,是对图像信息的深层理解, 是数字图像处理的高级阶段, 同时也是图像识别的开始。特征工程是图像处理的必备工具,所以掌握它的重要性不言而喻。什么是特征?特征是某一类对象区别于其他类对象的相应(本质)特点或特性, 或是这些特点和特性的集合。那么特征都有哪些呢?粗略的讲,我们平常看到的灰度值,图像里物体的长宽,周长、面积、圆度、等区域描绘子, 以及直方图和灰度共现矩阵能量、熵、灰度相关性、图像矩等纹理描绘子都是特征(Gabor、几何特征、纹理特征或者统计意义的特征)。它比单纯灰度值的语义更抽象一层。其实特征提取到处可见,比如机器学习就是人工按照需要提取特征,并做特征分类。而比较流行的深度学习方法,实质也提取特征,只不过是自动提取的,并对特征迭代计算找出最佳特征分布。

特征提取的一般原则
图像识别实际上是一个分类的过程,为了将它与其他不同类别的图像区分开来。我们自然希望选择那些在同类图像之间差异较小(较小的类内距,类内集中度高),在不同类别的图像之间差异较大(较大的类间距,类间分离性好)的图像特征, 我们称之为最具有区分能力(most discriminative)的特征。此外, 在特征提取中先验知识扮演着重要的角色, 如何依靠先验知识来帮助我们选择特征也是后面将持续关注的问题。

特征的评价
面对实际问题时,特征提取应具体问题具体分析,其评价标准具有一定的主观性,以解决问题为导向。然而,还是有一些可供遵循的普遍原则,能够作为我们在特征提取实践中的指导。总结如下:
特征应当容易提取。换言之, 为了得到这些特征我们付出的代价不能太大。 这还要与特征的分类能力权衡考虑.选取的特征应具有抗干扰性能,有效过滤噪声和不相关转换不敏感。 而最重要的一点, 应试图寻找最具区分能力的特征。上述内容是参考意义,不具有唯一性。下面举例说明,提取图像特征的一些方法。

区域形状

在取图像特征后,当我们想要提取某个区域时,往往存在几个相似的区域,这时可以根据区域的某个特征与其他区域区别开,用此特征来选择指定的区域。

1.提取圆形区域:

*读取图像
read_image (Image, 'C:/Users/DELL/Desktop/circle_plate_01.png')
*二值化
threshold (Image, Region, 128, 255)
*分离区域,此时区域比较多且杂,需要从中提取出来
connection (Region, ConnectedRegions)
*按面积特征选择大于150的区域
select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 150, 99999)
*在上一步基础上,按圆度选择特征在(0.99,1)之间的区域,这样按照特征就提出想要的区域
select_shape (SelectedRegions1, SelectedRegions, 'circularity', 'and', 0.99,1)

        原图                                  二值化分并离不连通区域
用面积筛选区域                              用圆度筛选区域

2.获取区域特征

*读取图像
read_image (Image, 'C:/Users/Desktop/pic.bmp')
*分解3通道
decompose3 (Image, Image1, Image2, Image3)
trans_from_rgb (Image1, Image2, Image3, ImageResult1, ImageResult2, ImageResult3, 'hsv')
*阈值分割
threshold (ImageResult3, Region, 180, 255)
*腐蚀
erosion_rectangle1 (Region, RegionErosion, 2, 2)
dev_close_window ()
*创建窗口句柄
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
*膨胀
dilation_rectangle1 (RegionErosion, RegionDilation, 2, 2)
*分割区域
connection (RegionDilation, ConnectedRegions)
*按面积筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 150, 99999)
*求区域指定的特征值
region_features (SelectedRegions, ['area','row1','column1', 'width', 'height'], Value)
*将特征值循环标注到图像上
for i := 0 to (|Value|/5) - 1 by 1
    area := Value[i*5]
    row1 := Value[i*5 + 1]
    column1 := Value[i*5 + 2]
    width := Value[i*5 + 3]
    height := Value[i*5 + 4]
    
    *height
    disp_arrow (WindowHandle, row1, column1, row1 + height, column1, 1)
    disp_message (WindowHandle, height, 'image', row1 + height/3, column1 - 10, 'cyan', 'false')
    
    *width
    disp_arrow (WindowHandle, row1, column1, row1, column1 + width, 1)
    disp_message (WindowHandle, height, 'image', row1 - 10 , column1 + width/3, 'cyan', 'false')
    
    *area
    disp_message (WindowHandle, area, 'image', row1 + height/3 , column1 + width/3, 'black', 'true')
endfor

在这里插入图片描述

图像

在这里插入图片描述

标注特征值



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值