计算机视觉:传统图像处理方法

2023-05-16

1、图像分割

经典的数字图像分割算法一般是基于灰度值的两个基本特征之一:不连续性和相似性。

(1)基于阈值:

基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到合适的类别中。
算法的关键:确定阈值。

(2)基于边缘:

所谓边缘是指图片中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性突变。
先确定图像中的边缘像素,把这些像素连接在一起就构成了所需的区域边界。
在这里插入图片描述

(3)基于区域

将图像按照相似性分成不同的区域,主要包括种子区域生成法,区域分裂合并法和分水岭算法等。
区域生长法:
根据一种事先定义的准则将像素或者子区域聚合成更大区域的过程 ,并且要充分保证分割后的区域满足以下条件:内部连通、互斥,且各子集的并集能够构成全集。
区域生长的条件实际上就是根据像素灰度间的连续性而定义的一些相似性准则,而区域生长停止的条件是一个终止规则。
当待加入像素点的灰度值和已经分隔好的区域所有像素点的平均灰度值的差的绝对值不大于最大像素灰度值距离时,该像素点加入到已经分割到的区域。相反,该区域生长算法停止。
分水岭算法:
一种图像区域分割算法,分水岭算法可以将图像中的边缘转化成“山脉”,将均匀区域转化成“山谷“,这样有助于分割目标。
在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近(求梯度)的 像素点连接起来构成一个封闭的轮廓。
步骤:
彩色图像灰度化,再求梯度图。
在梯度图的基础上进行分水岭算法,求得分段图像的边缘线。

(4)基于图论

Graph Cuts分割:
第一种顶点对应于图像中的每个像素。每两个邻域顶点(对应于图像中每两个邻域像素)的连接一条边。
另外两个终端顶点,叫S(source:代表前景)和T(代表背景)每个普通顶点和这两个终端顶点之间有连接,组成第二种边。
Graph Cuts中的Cuts是指这样一个边的集合,该集合中所有边的断开会导致残留’S’和’T‘图的分开,称之为割。如果一个割,它的所有边的权值之和最小,就称之为最小割,也就是图割的结果。
。。。
在这里插入图片描述

R(A)为像素p分配标签l的惩罚,当像素p的灰度值属于目标的概率大于背景Rp(1)小于Rp(0)
即像素p更有可能属于目标时,将p归类为目标可以使得R(L)尽可能的小。
B是像素p和q之间不连续的惩罚,一般来说如果p和q越相同,那么B越大,如果非常不同,B接近0
在这里插入图片描述过程:
先取两个种子点
建立一个图
图中边的粗细表示对应权值的大小
找到权值和最小的边的组合
完成图像分割的功能
在这里插入图片描述
GrabCut:
假定前景和背景是高斯混合模型(GMM),对于每个像素,要么来自目标GMM 的某个高斯分量,要么来自背景GMM的某个高斯分量。
用边界来体现邻域像素之间不连续的惩罚,如果两邻域像素差别很小,那么它属于同一个目标或者背景的可能性特别大,反之可能是边缘,通过K-Means算法迭代获得。
GMM:两组点分别通过两个不同的正态分布随机生成而来。如果没有GMM,那么只能用同一个的二维高斯分布来描述。
GrabCut分割:
迭代进行Graph Cuts,优化前景和背景的颜色模型,能量随着不断迭代变小,分割效果越来越好。流程:(1)使用标记初始化颜色模型(K=5)(2)迭代进行GraphCut

2、人脸检测

Harr-like特征+级联分类器

3、行人检测

(1)HOG+SVM
(2)DPM

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

计算机视觉:传统图像处理方法 的相关文章

  • Git系列讲解(二):项目子模块submodule

    Git支持在项目中添加别的项目为子模块 xff0c 这篇文章将详细讲解其中用法 目录 一 为Git项目添加子模块1 先将主项目克隆到本地2 使用git命令添加子模块3 添加完子模块后目录的变化4 把变化提交到远程仓库 二 克隆包含子模块的项
  • Linux系列讲解 —— 对装有Ubuntu18.04系统的硬盘进行数据迁移

    目录 0 背景介绍1 参照旧硬盘的分区对新硬盘进行分区2 将旧硬盘分区数据迁移到新硬盘对应分区中补充 xff1a 1 新硬盘启动有问题时的对策 需要启动U盘 0 背景介绍 现有一块装有ubuntu系统的旧硬盘 sda xff0c 电脑主机的
  • VS Code中的GIT操作

    一 前言 我们在进行项目开发时都免不了与GIT打交道 xff0c 但是面对各种的难记的GIT命令总是手足无措 xff1b 还好编译器中内置了GIT的仓库的一系列操作 xff0c 掌握了可视化的操作就不用担心记不住GIT命令符了 下面主要介绍

随机推荐

  • MySQL 建表 技巧

    1 create time 自动填写创建日期 xff0c update time 数据更新之后自动更新时间 使用DDL语句创建 CREATE TABLE 96 production info 96 96 id 96 int NOT NULL
  • Android 连接MySQL 并打包

    1 代码配置 2 打包选项配置 xff0c 一定是mono 43 net 4 x
  • HybridCLR 实战篇

    HybridCLR 实战篇 HybridCLR 是MIT开源的一个unity热更新打包方案 xff0c 该插件不像LUA和ILRuntime那样复杂 官方文档 xff1a https focus creative games github
  • Intellij IDEA中的撤销和回复撤销快捷键

    Intellij IDEA中 1 Ctrl 43 z是撤销快捷键 2 如果想恢复Ctrl 43 z 掉的内容 xff0c 按快捷键为 xff1a Ctrl 43 Shift 43 Z
  • 树莓派-关闭可视化界面

    树莓派 关闭可视化界面 命令行打开boot设置界面重启树莓派 职业玩家不需要图形界面 命令行 打开boot设置界面 span class token comment 打开boot设置界面 span sudo raspi span class
  • 从高考到程序员

    记得当年进入考场的时候也是志气满满 xff0c 心里念叨着一定要考上自己理想的大学 xff0c 光宗耀祖 当时坐在学校安排的bus上向考场的方向行进 xff0c 看到路边的交警叔叔 xff0c 情不自禁的喊了一声 xff0c 交警大哥辛苦了
  • linux zip文件解压命令详解

    文章转自 xff1a http www cnblogs com wangkongming p 4305962 html 1 把 home目录下面的mydata目录压缩为mydata zip zip r mydata zip mydata 压
  • mouse without borders win7安装不了

    mouse without borders 在win7安装的时候提示 Your computer span class hljs keyword has span span class hljs keyword not span been
  • IntelliJ IDEA中工具栏,功能区的显示和关闭

    点击 view xff0c 点击toolbar 显示工具栏 xff0c tool buttons 功能区tab 官人打赏 xff1a http blog csdn net assassinsshadow article details 76
  • chrome 删除厌烦的桔梗导航

    最近突然出现了让人非常厌恶的桔梗导航 xff0c 楼主找了写办法 xff0c 解决了这个bug xff08 程序员的骄傲 xff0c 虽然网上可能有人已经搞好了 xff09 我的系统是win10 1 开始菜单中找到chrome并打开文件位置
  • jetbrans rider 格式化代码时,{}不换行

    因为之前是写JAVA的 xff0c 所以对代码的格式优点洁癖 我希望看到的代码格式是这样的 span class hljs keyword private span span class hljs keyword void span spa
  • unity 设置物体不能被穿透

    墙壁box collider Is Trigger不勾选 cube xff0c rigidbody collision detection 设置为continuous dynamic
  • ROS运行gazebo的错误exit code 134解决方案

    出现此错误会导致Gazebo打不开 xff0c 异常退出 解决办法如下 xff1a 在终端下将环境变量设置为0 export SVGA VGPU10 61 0 此解决方案来自于 xff1a https blog csdn net xiaod
  • docker使用——容器不能访问外网

    如果之前一直正常使用 xff0c 然后发生宿主机可访问外网 xff0c 但容器不能的问题 xff0c 可以尝试重启docker服务解决 xff1a gt gt gt sercice docker restart span class hlj
  • iOS开发遇到的问题

    385 scrollView不接受点击事件 xff0c 是因为事件传递失败 MyScrollView m Created by beyond on 15 6 6 Copyright c 2015年 beyond com All rights
  • C++学习推荐书目

    语言入门 有丰富C经验 缺乏C 43 43 经验的 C 43 43 Primer 3RD 有其他语言的丰富经验的 The C 43 43 Programming Language 简称TCPL 对不住纯C的fans了 如果选择薄一点的书 x
  • 2011年个人总结

    2011 年个人总结 花絮 xff1a 我们习惯总结过去的一年 xff0c 但每年都是一样的 xff0c 我们拼命的工作 xff0c 为了生活 xff0c 一成不变 xff0c 却又常常迷茫 而写写总结 xff0c 是为了以后更好的生活 x
  • VNC连接失败:The connection was refused by the host computer

    解决方法 xff1a 1 用Xshell登陆自己的服务器 2 在命令行中输入vncserver 命令行中出现 xff1a Warning optimal6 2 is taken because of tmp X2 lock Remove t
  • 业务层 、服务层、数据层、表现层

    一般说来 xff0c 业务逻辑层中的模块包含了系统所需要的所有功能上的算法和计算过程 xff0c 并与数据访问层和表现层交互 抽象的说 xff0c 业务逻辑层就是处理与业务相关的部分 xff0c 一般来说 xff0c 业务层包含一系列的执行
  • 计算机视觉:传统图像处理方法

    1 图像分割 经典的数字图像分割算法一般是基于灰度值的两个基本特征之一 xff1a 不连续性和相似性 xff08 1 xff09 基于阈值 xff1a 基于图像的灰度特征来计算一个或多个灰度阈值 xff0c 并将图像中每个像素的灰度值与阈值