图像处理入门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 读取某一文件夹下的文件

    MATLAB 是一个十分强大的科学计算软件 用于各种数据分析和科学计算 在实际工作和研究过程中 我们通常将数据存储在文件中 文件存在于系统的某个目录中 如果需要读取这些文件 可以使用 MATLAB 提供的文件和文件夹操作函数 本文将介绍如何
  • R-CNN史上最全讲解

    文章目录 一 初识R CNN 网络结构 二 训练步骤 1 RP的确定 2 模型pre training 3 Fine Tunning 4 提取并保存RP的特征向量 5 SVM的训练 6 bbox regression的训练 三 测试步骤 s
  • Windows下命令行及Java+Tesseract-OCR对图像进行(字母+数字+中文)识别,亲测可行

    Windows下Java Tesseract OCR对图像进行字符识别 亲测可行 1 下载tesseract ocr 中文语言包并安装 2 命令行对图片进行识别及效果图 3 Java调用Tesseart OCR 3 1 效果图 3 2 源码
  • 通过matlab实现数字图像处理中的抠图换背景功能

    适合背景为蓝色的图片 效果最好 如果背景色为别的颜色 可对代码进行调整修改后使用 其实这里的代码最开始由于报错已经经过我的修改了 可能出现的异常情况 1 待抠图片以及需要替换的背景图片放置在代码文件所在的目录 不然会无法读取 不出结果 2
  • 辐射强度、辐亮度、辐照度——一文搞定

    先写定义 上图是从网上看到的并重写的 其中我们最容易混淆的就是辐射强度 辐亮度 辐照度的关系 如果我们没有接触专业领域 那么我们可能接触最多的就是辐射强度 而这种现象是不对的 因为我们一般考虑的均为这光好强呀 照得屋里特别亮 这里的光亮 我
  • 第五章-数字水印-1-位平面

    数字水印概念 数字水印是一种将特定数字信息嵌入到数字作品中从而实现信息隐藏 版权认证 完整性认证 数字签名等功能的技术 以图片水印为例 水印嵌入过程 版权信息水印A嵌入到图像B中 得到含有水印的图像C 图像C与图像B在外观上基本一致 肉眼无
  • Python图像处理实战:处理和分析图像数据

    引言 在现代数字化时代 人们生产和获取数以亿计的数字图像 具体而言 这些图像数据常用于计算机视觉 模式识别 医学影像 地球观测和卫星遥感等领域 通过高级图像处理技术 可以从这些数据中提取出有用的信息 从而支持实现各种应用 本文主要介绍Pyt
  • 图像恢复(加噪与去噪)

    人工智能导论实验导航 实验一 斑马问题 https blog csdn net weixin 46291251 article details 122246347 实验二 图像恢复 https blog csdn net weixin 46
  • haclcon实现图像处理的傅里叶变换

    dev open file dialog read image default default Selection read image Image Selection mean image Image ImageMean 9 9 gaus
  • 九宫格人车识别

    一 原理 通过霍夫检测圆的个数来识别小人位置 二 过程 1 二值图像 2 去掉宫格内容 便于分割 3 对二值图填补 减少纹理 4 分割九宫格 依次检测每个宫格中圆个数 5 最终显示小人所在宫格图片 在img6 jpg中 详细程序运行结果 三
  • 【OpenCV】车辆识别 C++ OpenCV 原理介绍 + 案例实现

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

    1 图像和视频识别 人工神经网络领域最重要的进展之一出自 ImageNet ImageNet收集了 1400 万标签图像并于2009年发布 ImageNet挑战赛要求参赛者设计一个能够跟人类一样对照片进行分类的算法 但一直没有出现获胜者 直
  • 扩散模型:Diffusion models as plug-and-play priors作为即插即用先验的扩散模型

    扩散模型 Diffusion models as plug and play priors作为即插即用先验的扩散模型 0 摘要 1 概述 2 方法 2 1 问题设置 2 2 将去噪扩散概率模型作为先验 3 实验 图像生成 3 1 MNIST
  • MEF:COA-NET

    COA NET COLLABORATIVE ATTENTION NETWORK FOR DETAIL REFINEMENT MULTI EXPOSURE IMAGE FUSION COA NET 用于细节细化多曝光图像融合的协作关注网络 近
  • cv2.minAreaRect()

    功能 求出在点集下的最小面积矩形 输入 格式 points array shape n 1 2 解释 其中points是点集 数据类型为ndarray array x1 y1 x2 y2 xn yn 输出 格式 rect tuple x y
  • 基于灰度的模板匹配(带旋转角度)

    原图 选择模板 旋转180度进行识别 继续旋转 依然可以识别 代码 Searching the best matching of a template in an image with rotation dev close window r
  • 图像特征提取技术

    目 录 前 言 基于颜色的特征提取 1 颜色空间 2 直方图以及特征提取 基于纹理的特征提取 1 灰度共生矩阵 2 tamura纹理 基于深度神经网络的图像处理 前 言 图像特征提取属于图像分析的范畴 是数字图像处理的高级阶段 本文将从理论
  • ETC纹理压缩

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • 友思特分享 | CamSim相机模拟器:极大加速图像处理开发与验证过程

    来源 友思特 机器视觉与光电 友思特分享 CamSim相机模拟器 极大加速图像处理开发与验证过程 原文链接 https mp weixin qq com s IED7Y6R8WE4HmnTiRY8lvg 欢迎关注虹科 为您提供最新资讯 随着

随机推荐

  • 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-特征提取

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