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

2023-10-28

特征提取

图像特征提取属于图像分析的范畴,是对图像信息的深层理解, 是数字图像处理的高级阶段, 同时也是图像识别的开始。特征工程是图像处理的必备工具,所以掌握它的重要性不言而喻。什么是特征?特征是某一类对象区别于其他类对象的相应(本质)特点或特性, 或是这些特点和特性的集合。那么特征都有哪些呢?粗略的讲,我们平常看到的灰度值,图像里物体的长宽,周长、面积、圆度、等区域描绘子, 以及直方图和灰度共现矩阵能量、熵、灰度相关性、图像矩等纹理描绘子都是特征(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

在这里插入图片描述

图像

在这里插入图片描述

标注特征值



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像处理入门5-特征提取 的相关文章

  • windows8.1 vs2015 dlib库cpu 版本编译以及应用 library is 90, caller expects 80

    近期由于要做一个关于人脸计数的项目 因此对dlib库进行了编译和使用 其中遇到了不少问题 下面请听我一一道来 第一步 从dlib官网下载dlib源码 链接地址 https github com davisking dlib 第二步 采用cm
  • matlab中 hold on 与 hold off,figure作用

    hold on是当前轴及图像保持而不被刷新 准备接受此后将绘制的图形 多图共存 即启动图形保持功能 当前坐标轴和图形都将保持 从此绘制的图形都将添加在这个图形的基础上 并自动调整坐标轴的范围 hold off使当前轴及图像不再具备被刷新的性
  • 数字图像处理(入门篇)六 图像数据预处理之坐标变化

    目录 1 平移 2 镜像 3 旋转 4 缩放 图像的坐标变换又称为图像的几何计算 常见的基本变换包括 平移 旋转 镜像和缩放等等 1 平移 1 代码 使用OpenCV仿射变换函数 cv2 warpAffine 实现平移操作 import n
  • 【计算机视觉】最后显示的CIFAR-100数据集照片很模糊怎么解决?

    文章目录 一 前言 二 如何解决 2 1 使用图像增强技术 2 2 使用插值方法 2 3 使用更高分辨率的图像数据集 2 4 手动调整图像尺寸 三 总结 一 前言 如果从CIFAR 100数据集加载的图像显示模糊 可能有几个可能的原因 分辨
  • CUDA的下载安装

    大家好 下面将进行CUDA的下载安装 下载安装的详细步骤描述如下 1 CUDA下载 https download csdn net download qq 41104871 87462747 2 CUDA安装 1 首先 需要解压缩下载好的C
  • (图像变换)Python-opencv,(批处理笛卡尔坐标系,也就是平时咱们看到的正常图片)二维彩色图像转化为极坐标系下的图像

    这个其实代码量不大 但对于我这个啥也编不出来的废柴来说我觉得真的好不容易 历经两天的痛苦折磨 终于完成了 下面进入正题 昨天我找了一天代码 然后挑挑拣拣也就找到一篇还是c 的图像极坐标化处理 代码如下 include
  • Halcon模板匹配

    Halcon模板匹配 Halcon模板匹配的方法 模板匹配的流程 基于形状的模板匹配的思路 原理 Halcon模板匹配的方法 模板匹配的流程 基于形状的模板匹配的思路 读取图像 转灰度图 dev close window dev open
  • 【从小项目学图片处理】#1 答题卡识别

    说明 项目皆参考于网上 代码也有大部分参考原文 仅用于学习和练习图像处理操作 项目原文 Bubble sheet multiple choice scanner and test grader using OMR Python and Op
  • 最大似然估计【MLE】与最大后验概率【MAP】

    最大似然估计 Maximum likelihood estimation 简称MLE 和最大后验概率估计 Maximum a posteriori estimation 简称MAP 是很常用的两种参数估计方法 如果不理解这两种方法的思路 很
  • 图像二值化

    文章目录 1 图像二值化 2 图像二值化方法及Python实现 2 1 简单二值法 2 2 平均值法 2 3 双峰法 2 4 OTSU法 3 opencv python中二值化方法的应用 3 1 简单阈值分割 Simple Threshol
  • Edraw Max教程】如何有趣的创建梦幻般的思维导图

    Edraw Max 亿图图示 是一款综合图形图表制作软件 它包含丰富的实例和模版 帮助您轻松创建流程图 网络拓扑图 组织结构图 商业图表 工程图 思维导图 软件设计图和平面布局图等 亿图采用更智能和人性化的绘制方式 最大程度帮助设计者降低工
  • 【OpenCV】车辆识别 C++ OpenCV 原理介绍 + 案例实现

    目录 前言 一 图像处理 二值化处理 膨胀 腐蚀 开运算 闭运算 二 案例实现 Step1 灰度处理 Step2 对视频进行帧差处理 Step3 二值化处理 Step4 腐蚀处理 Step5 膨胀处理 Step6 标记 框选目标 完整代码
  • 机器视觉最火应用领域

    1 图像和视频识别 人工神经网络领域最重要的进展之一出自 ImageNet ImageNet收集了 1400 万标签图像并于2009年发布 ImageNet挑战赛要求参赛者设计一个能够跟人类一样对照片进行分类的算法 但一直没有出现获胜者 直
  • 2021全国电设(F题)openmv的图像识别之数字识别

    基于openmv的图像识别 通过参加全国电子设计大赛F题总结出openmv4的数字识别 其它版本暂时没试过 欢迎交流 openmv简介 OpenMV是一个开源 低成本 功能强大的机器视觉模块 以STM32F427CPU为核心 集成了OV77
  • 图像加权运算

    import os import re import cv2 cv2 imshow image img 显示 cv2 waitKey 10000 停留 cv2 destroyAllWindows 关闭 from PIL import Ima
  • 基于灰度的模板匹配(带旋转角度)

    原图 选择模板 旋转180度进行识别 继续旋转 依然可以识别 代码 Searching the best matching of a template in an image with rotation dev close window r
  • 基于TensorFlow2实现的宠物识别系统(爬虫、模型训练和调优、模型部署)

    目录 开发环境 0 项目准备 1 数据集准备 2 数据预处理 3 构建模型 4 模型训练及验证 5 模型部署 6 项目地址 开发环境 作者 嘟粥yyds 时间 2023年8月25日 集成开发工具 PyCharm Professional 2
  • 图像处理——我理解的傅里叶变换

    1 傅里叶变换的理解 傅里叶变换的相关数学公式目前还没有搞懂 先不整那个东西 我们主要是研究傅里叶变换的一些思想和应用 这个思想起源于牛顿研究那个三棱镜 白光透过棱镜之后会被分解为七种颜色的光 这些光叠加又能形成白光 所以说可以把一种事物分
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)

    FMC141是一款基于VITA57 4标准的4通道2 8GSPS 2 5GSPS 1 6GSPS采样率16位DA播放FMC子卡 该板卡为FMC 标准 符合VITA57 4与VITA57 1规范 16通道的JESD204B接口通过FMC 连接
  • 【图像配准】

    非配对配准 Non rigid registration 和配对配准 Rigid registration 是医学图像配准中常用的两种方法 它们有着不同的含义和应用 非配对配准 Non rigid registration 非配对配准是指将

随机推荐

  • BGNet

    为此 在本文中 我们提出了一种新的边界引导网络 BGNet 它显式地使用边缘语义来增强伪装对象检测的性能 首先 我们设计了一个简单而有效的边缘感知模块 EAM 它集成了低级别的局部边缘信息和高级别的全局位置信息 以在显式边界监督下探索与对象
  • postgreSQL——并发控制7(日志管理)

    2021 SDUSC 目录 概述 CLOG日志管理器 1 CLOG日志管理器相关数据结构 2 CLOG日志管理器主要操作 1 日志管理器的初始化 2 CLOG 日志的写操作 3 CLOG日志的读操作 4 CLOG日志页面的初始化 5 CLO
  • css-排除类名

    场景 写了一个通用块 有禁用样式 和 hover样式 然后 被禁用的时候 希望 hover的样式 可以不生效 解决 wrap not is disabled wrap is custom 一些样式 not is disabled hover
  • python无损旋转图片--90°--180°--270°

    使用 transpose 无损旋转图片并保存 from PIL import Image import os rootdir r D data 1500 指明被遍历的文件夹 for file in os listdir rootdir cu
  • Python3.5源码剖析

    首先需要明白 在Python3 5的源码里 我们操作的文本字符串是以unicode的形式存在的 如果字符串中仅仅包含ASCII 那么会通过c文件中的PyUnicode New函数进行创建 创建的结构体是PyASCIIObject 该结构体的
  • python程序的打包和安装

    0 前言 我们经常会使用pip setup py install 安装一个源码包 可是这个可以安装的源码包是怎么生成的 这个setup py又是怎么生成的呢 这篇文章中 我们就来一探究竟 用来进行python程序打包的两个常用工具为Dist
  • shell中echo命令详解

    本文参考自 http www linuxidc com Linux 2014 08 105548 htm http www cnblogs com perfy archive 2012 07 24 2605903 html 更详细的内容请参
  • 换行CRLF,LF和CR,IntelliJ下设置默认为LF

    在window下开发有一个大坑 就是换行默认是CRLF 但是Linux下只有换行LF 这样代码提交后 会出现编译问题 首先我们先介绍CRLF LF和CR CR是MAC老版本的做法 就是回车 但是后来的MAC系统统一换成LF了 LF是Linu
  • python计算圆周率

    最近一段时间在学习python算法 今天分享5种python计算圆周率的方法 1 割圆法 2 无穷级数法 3 蒙特卡洛法 4 梅钦法 5 拉马努金法 题目来自头歌习题 希望能帮到大家 代码如下 1 割圆法 编程实现割圆法计算圆周率 并输出分
  • excel打开后灰色不显示内容_如何解决EXCEL表格打开显示空白(灰色)的问题

    Excel表格打开没有工作表信息 显示空白 界面是灰色的 大多是单一表格有这种现象 其他表格没有问题 一般是Excel设置问题 方案一 打开故障Excel 视图 窗口 取消隐藏 方案二 在系统左下角开始菜单 找到所有程序 Microsoft
  • es 指定排序字段_ElasticSearch按照指定字段排序

    默认情况下 ES的结果集会按照相关性进行排序 相关性越高 排名越靠前 不过这个规则到了实际应用中往往并不能完全满足我们多变的需求 对于查询结果 除了要找出它们来 还经常需要根据某一规则进行排列 这个规则一般就是指按照某一特定字段排序 按照d
  • Cas5.3服务器集成DM8 达梦数据库

    DM8达梦数据库相关准备 1 安装DM8达梦数据库并安装相关数据库实例 省略一千字 2 新建ucas auth user表 并增加相关用户条记录 DROP TABLE IF EXISTS ucas auth user CREATE TABL
  • 命令行修改java 内存,在命令行上增加jMeter的内存

    I am running jMeter from the command line on a Mac Today it threw an Out of memory heap space error newbie sh jmeter sh
  • PlayerPawn(鼠标控制移动、旋转、大小缩放)

    ue4制作PlayerPawn 鼠标拖动 旋转 YLimtMin 值 89 YLimtMax 值 10 鼠标滚轮键 控制弹簧臂长短 主要控制移动开关 函数LimtMovsePicth
  • STL——map、set等红黑树结构的最后一个元素

    map set等背后由于红黑树的关系 插入元素后便成为 平衡 搜索树了 所以末尾元素默认为最大值 得到该值的方法 1 利用 rbegin 反向迭代器 int main int argc char argv map
  • IntersectionObserver实现小程序长列表优化

    IntersectionObserver实现小程序长列表优化 关于 IntersectionObserver 思路 这里以一屏数据为单位 一个分页的10条数据 最好大于视口高度 监听每一屏数据和视口的相交比例 即用户能不能看到它 只将可视范
  • 接口测试之Jmeter+Ant+Jenkins接口自动化测试平台

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行 自动生成测试报告 以及持续集成 Jmeter支持接口的测试 Ant支持自动构建 而Jenkins支持持续集成 所以三者组合在一起可以构成一个功能完善的接口自动化测试平台 环境准备
  • IDEA中输入法无法输入中文

    偶尔而遇到这个问题 又忘记了 记录下 在idea内无法输入中文 win环境可以 很简单快捷键 ctrl shift e 解决问题 看到好多文章去改变量 改配置文件 这
  • LinearLayout加载动态view时显示不全解决办法

    问题 在某个主要Layout里面有个LinearLayout 用来动态加载别的view页面 如果需要加载的动态view内容很空洞 例如没有足够的Text长度来撑起整个layout宽度 这时候这个被加载的view就会不能以fill paren
  • 图像处理入门5-特征提取

    特征提取 图像特征提取属于图像分析的范畴 是对图像信息的深层理解 是数字图像处理的高级阶段 同时也是图像识别的开始 特征工程是图像处理的必备工具 所以掌握它的重要性不言而喻 什么是特征 特征是某一类对象区别于其他类对象的相应 本质 特点或特