当前位置: 首页 > news >正文

【图像处理与机器视觉】图像处理概述与像素

什么是数字图像处理

改善图像信息,便于作出解释
方便对图像传输,储存,方便机器理解

什么是数字图像

(1)模拟图像:连续二维函数 f(x,y)表示,其中 x,y 是平面坐标,f 代表图像在某点的某种性质的数值
(2)数字图像:对模拟图像red:离散化的结果
r 表示图形的行,c 表示图像的列,I 表示离散后的 f,可以用矩阵或者数组来描述数字图像
像素:数字图像的元素

数字图像处理的任务

(1)图像获取
(2)图像预处理
(3)图像滤波与增强
(4)图像复原
(5)彩色图像处理
(6)图像压缩
(7)图像分割
(8)图像描述与识别

机器视觉

用机器来模拟视觉,使用算法对于采集到的图像进行分析处理,并做出合适决策
计算机视觉侧重于对于理论的研究,而机器视觉侧重于对于实际场景的使用,强调算法的重要性
一个完整的机器视觉系统包括:
(1)光学系统
(2)图像采集模块
(3)图像处理系统
(4)交互界面
光学系统:通常包括光源,相机和镜头,突出被拍摄物体的特征,方便后期处理
图像采集模块:使用图像采集卡,将来自相机的模拟信号或者数字信号转为图像数据流
图像处理系统:通过视觉处理软件对于图像进行多种运算,并对得到的特征进行检测,定位,测量等处理
交互界面:显示最终的结果

工业应用中机器视觉的特点

(1)综合技术
(2)实用性
(3)实时性

处理基础

图像感知与获取

通过传感器将输入能源变为电压,再进行数字化处理

图像取样与量化

大多数传感器的输出是连续电压波形,为了产生图像,需要把连续的模拟信号转为离散的数字信号
取样:图像空间坐标的数字化
量化:对于图像函数值 f的数字化
数字图像只是对于真实场景的近似,取样点越多,量化的灰度级越多,图像质量越好
对于表示模拟图像的函数 f ( s , t ) f(s,t) f(s,t),通过采样和量化,转化为 M 行 N 列,离散灰度级数为 L 的数字图像,其中 M、N 必须为正整数,灰度级数 L = 2 k L=2^k L=2k,等间隔
(1)灰度跨越的值域为动态范围: 图像中最大可度量灰度 图像中最小可检测灰度 \frac{图像中最大可度量灰度}{图像中最小可检测灰度} 图像中最小可检测灰度图像中最大可度量灰度
(2)可度量灰度的上限取决于饱和度,超过了饱和度的灰度级将被剪切掉;下限取决于噪声,因为噪声掩盖了可检测的最低真实灰度级
(3)对比度:图像中最高的灰度级与最低的灰度级之间的灰度差
L = 2 k L=2^k L=2k,储存数字图像所需要的 bit 数为: M ∗ N ∗ k M*N*k MNk
E.G.对于 32*32 的二值图像(黑白两种元素的图像)
k=1,则其大小为: 3 2 2 ∗ 1 = 1024 b i t s = 256 b y t e s 32^2*1=1024bits=256bytes 3221=1024bits=256bytes

空间分辨率

图像的空间分辨率代表着对于图像中可辨别的最小单位的度量,由采样方式确定:
(1)视觉任务:像素尺寸
(2)平面设计:DPI(dots per Inch)

灰度分辨率

灰度分辨率则是指在灰度级中可以分辨的最小变化,灰度分辨率越大,图像的细节区分度就越好
在这里插入图片描述

图像中灰度级变小会如何:图像的明暗过度会越来越明显,同时可能出现一些不属于正常物体边缘的伪轮廓,呈现细小山脊状,是灰度级不够平滑造成的

图像内插

用于图像的放大缩小,旋转矫正等任务,同时也可以相对应的改变图像的分辨率
插值:通过已知的图像数据来对改变后的位置数据进行处理

最近邻插值

将原图中最相邻的灰度值赋给新位置,当对于边缘来说可能造成严重的失真
插值过程:
(1)对于一张 500x500 的图像,将其放大为 750x750
(2)采用原图的间隔创建 750*750 的网格
(3)将新图像收缩到和原图相同的大小,此时新网格的单位边长小于原网格
(4)对每个新网格中的点,找到其最近的原网格的点为其赋值
(5)将新网格扩展到 750x750 的大小,此时就获得了放大后的图片
总体来说,过程就是:放大-缩小-放大
在这里插入图片描述

线性插值

已知点(x0,y0)与 (x1,y1),计算[x0,x1]区间上的任意直线上一点的插值
y = x 1 − x x 1 − x 0 ⋅ y 0 + x − x 0 x 1 − x 0 ⋅ y 1 y = \frac{x_1-x}{x_1-x_0}\cdot{y_0}+\frac{x-x_0}{x_1-x_0}\cdot y_1 y=x1x0x1xy0+x1x0xx0y1
则认为
f ( P ) = x 1 − x x 1 − x 0 ⋅ f ( P 0 ) + x − x 0 x 1 − x 0 ⋅ f ( P 1 ) f(P) = \frac{x_1-x}{x_1-x_0}\cdot f(P_0)+\frac{x-x_0}{x_1-x_0}\cdot f(P_1) f(P)=x1x0x1xf(P0)+x1x0xx0f(P1)
在这里插入图片描述

双线性插值

用 4 个最近邻来估计给定位置的灰度值,相当于将 y 轴也算作灰度值插值,就不用考虑需要在直线上的条件,只要在 x,y 构成的平面内即可
首先还是在 x 方向进行线性插值,获得两个辅助点 R1 和 R2,然后再利用这两个辅助点在 y 方向上插值,从而得到最终的插值结果
在这里插入图片描述
我们也可以推出在三维空间中是三线性插值

双三次插值

了解即可,采用 16 个最近邻点来进行计算,效果比双线性插值更好,但是速度更慢

像素间的基本关系

主要分为 4 邻域,D 邻域,和 8 邻域
在这里插入图片描述
(对于 1 而言)
4 邻域:2,4,6,8 号格
D 邻域:3,5,7,9 号格
8 邻域:4 邻域+D 邻域
在灰度级中,我们一般考虑 3 种像素的邻接方法
(1)4 邻接:两个像素互在对方的 4 邻域中
(2)8邻接:两个像素互在对方的 8 邻域中
(3)m 邻接(混合邻接):分为两种情况:1.4 邻接 2.两个像素互在对方的 D 邻域中,且 4 邻域的交集中像素值为 0
目的:对于8邻接,在寻找两个点的路径或者计算路径长度的时候会出现二义性的问题,m邻接可以去除二义性
在这里插入图片描述
如果使用8邻接,那么A-D的距离计算就会产生歧义,但是对于m邻接,A-C不能直接联通,因为他们的4邻域的交集中有B,所以A-D的路径为A-B-C-D

通路与连通集

对于刚刚我们提到的路径,我们把其叫做通路,通路的长度即为其包含的像素个数
(1)如果起始点和终点是同一个点,那么我们就认为这条通路是闭合通路,使用了哪种邻接方式就被称为x-通路
(2)给定一个像素集合S,对于任何一个属于S的像素q,通路中连接到像素q的像素集被称为S的连通分量
(3)如果S仅有一个连通分量,则S称为连通集
(4)R为图像的一个像素子集且刚好构成连通集,则将其称为一个区域,两个区域合在一起成为一个连通集,则这两个区域称为邻接区域

前景与背景

一幅图像中有k个不连接的区域,它们均不与图像的边界相接,令 R u R_u Ru代表k个区域的并集, ( R u ) c (R_u)^c (Ru)c表示其补集
则称 R u R_u Ru为前景,$(R_u)^c为背景

图形的边界

对于图像中的一部分区域,已经定义了其邻接方式,若在此邻接方式下,区域的某像素的邻接区域中出现背景像素,则称该像素为该区域的边界

对于距离的定义

在图中,对于像素有:
(1)不是同一个点之间的距离必然大于0
(2)A到B的距离等于B到A的距离
(3)两边之和大于第三边

欧式距离

就是传统的计算距离的方式,勾股定理

D4距离(城市街区距离)

D 4 ( p , q ) = ∣ X p − X q ∣ + ∣ Y p − Y q ∣ D4(p,q) = |X_p-X_q|+|Y_p-Y_q| D4(p,q)=XpXq+YpYq

D8距离(棋盘距离)

D 8 ( p , q ) = m a x ( ∣ x p − x q ∣ , ∣ y p − y q ∣ ) D8(p,q) = max(|x_p-x_q|,|y_p-y_q|) D8(p,q)=max(xpxq,ypyq)

Dm距离

两点间的最短通路

相关文章:

【图像处理与机器视觉】图像处理概述与像素

什么是数字图像处理 改善图像信息,便于作出解释 方便对图像传输,储存,方便机器理解 什么是数字图像 (1)模拟图像:连续二维函数 f(x,y)表示,其中 x&#xf…...

虚函数的性能消耗到底在哪?

虚函数的性能消耗 聊到虚函数的性能开销,大家的第一反应肯定是间接调用上,何为间接调用? 当调用一个虚函数时,实际执行的函数版本是在运行时通过虚函数表(virtualtable)查找确定的。这个查找过程是一个间接…...

Visual Studio 的使用

目录 1. 引言 2. 安装和配置 2.1 系统要求 2.2 安装步骤 2.3 初次配置 3. 界面介绍 3.1 菜单栏和工具栏 3.2 解决方案资源管理器 3.3 编辑器窗口 3.4 输出窗口 3.5 错误列表 3.6 属性窗口 4. 项目管理 4.1 创建新项目 4.2 导入现有项目 4.3 项目属性配置 5. 代…...

Web前端与App前端:深入剖析两者的异同

Web前端与App前端:深入剖析两者的异同 在数字化时代,前端技术已成为连接用户与数字世界的桥梁。然而,当我们谈及前端时,往往会遇到两个相似的概念:Web前端和App前端。这两者是否完全相同,还是各有千秋&…...

初学者必读:Midjourney AI创作工具的简易使用手册!

在数字化时代,AI的应用不断推动着各个领域的发展。在这些领域中,AI在艺术和设计方面的应用引起了广泛的关注。AI绘画软件作为今年的热门,Midjourney 通过其独特的原理和方便的使用方法,为创作者提供了一个全新的创作逼真绘画的平台…...

使用python绘制一个五颜六色的爱心

使用python绘制一个五颜六色的爱心 介绍效果代码 介绍 使用numpy与matplotlib绘制一个七彩爱心! 效果 代码 import numpy as np import matplotlib.pyplot as plt# Heart shape function def heart_shape(t):x 16 * np.sin(t)**3y 13 * np.cos(t) - 5 * np.cos…...

关于锂电池短路测试

了解锂电池短路测试 电池短路试验测试标准有哪些?宏展告诉你 - 哔哩哔哩 (bilibili.com) 电池电芯上架亚马逊美国站认证标准和要求UL1642测试 - 知乎 (zhihu.com) CR123A电池的短路试验: CR123A电池为例_锂锰电池所需通过的安全性能测试_纽扣电池_锂锰电池_松下电…...

排序(前篇)

1.排序的概念及其运用 2.插入排序的概念及实现 3.希尔排序的概念及实现 4.选择排序概念及实现 总代码(对比各个排序在大量的数据情况排序所化的时间): 1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使…...

Linux学习笔记(二)

一、Linux文件目录 1.命令:tree -L 1 2.挂载命令(例如U盘,需要挂载之后才能访问): mount /dev/cdrom /mnt ls /mnt 3.查看登录信息: last / lastlog 4.修改/查看网络信息 vi /etc/sysconfig/netw…...

Git——pull request详细教程

当我们需要协助其他仓库完成更改时,往往会用到git中的Pull Request操作,从而方便团队的协作管理和代码持续集成。 下面是详细的教程步骤。 一. Fork目标项目 比如说我现在要fork以下Qwen-VL的项目,如图所示: 随后点击Create即可…...

Prompt工程与实践

Prompt工程与实践 一、Prompt与大模型 1.1 大模型的定义 大模型本质上就是一个概率生成模型,该模型的模型参数足够大,并且在训练过程中阅读了非常多的各个领域的语料。这个时候,如果通过一个正确的、有效的指令去引导这个模型,…...

电脑录屏怎么录?7个电脑录屏软件免费版强势来袭,赶快收藏!

电脑录屏怎么录?相信很多小伙伴们都不知道怎么在Windows电脑上录屏吧?在当今社会,随着互联网的快速发展,越来越多的小伙伴们开始通过制作视频内容来分享知识、展示技能或者记录生活。电脑录屏成为了一种简单高效的方式&#xff0c…...

ts: 映射类型

映射类型会携带接口的可选和只读属性 interface User { name: string; age?: number; readonly email: string; } interface User { name: string; age?: number; readonly email: string; } type change<T> {[P in keyof T]: T[P] } type obj change<…...

调出idea解决冲突界面

背景 我对idea使用不熟练&#xff0c;还是习惯用git bash来合并代码&#xff0c;合并爆冲突后&#xff0c;我进入idea准备解决冲突&#xff0c;却发现找不到解决冲突的界面。 解决 右击idea中冲突的文件&#xff0c;将鼠标移动到菜单栏的git上&#xff0c;此时应该出现包含有…...

android studio项目 gradle-xx-bin.zip下载失败或很慢的解决方法

一、环境&#xff1a; gradle官网:https://services.gradle.org/distributions/ IDE: android studio 二、下载并拷贝以下文件 下面已 gradle-8.0 为例&#xff0c;gradle缓存目录为&#xff08;file->settings->Build,Execution…->Build Tools->Gradle查看Gradle…...

Python系列:教你使用PyMySQL操作MySQL数据库

Python系列 PyMySQL操作MySQL数据库 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_2855…...

mysql数据库管理面试题-1

1. 描述MySQL架构及其主要组件&#xff08;例如存储引擎、缓存、优化器等&#xff09;。 MySQL的架构可以分为三层&#xff1a; 客户端层&#xff1a;这是用户和MySQL数据库交互的接口&#xff0c;包括命令行工具、图形化管理工具等。 服务层&#xff1a;这是MySQL的核心部分…...

Linux安装zsh并配置oh-my-zsh

配置oh-my-zsh 查看当前shell安装zsh切换到zsh配置ohmysh 查看当前shell cat /etc/shells# /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash安装zsh sudo apt install zsh# /etc/shells: valid login s…...

echarts(6大基础图表)的使用

目录 一、vue2挂载 二、柱状图 2.1、基础柱状图介绍 2.2、标记&#xff1a;最大值\最小值(markPoint)、平均值(markLine) 2.3、显示&#xff1a;数值显示(label)、柱子宽度(barWidth)、横向柱状图 三、折线图 3.1、标记&#xff1a;最大值\最小值(markPoint)、平均值(ma…...

React hooks - forwardRef+useImperativeHandle

forwardRefuseImperativeHandle React.forwardRef用法useImperativeHandle用法第三个参数的用法 React.forwardRef与useImperativeHandle配合使用注意事项 React.forwardRef用法 1.创建一个 能够接受到ref属性的React 组件。 ref 用来获取实例&#xff0c;但函数组件不存在实例…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...