2019-09-09 21:48:00 weixin_30819163 阅读数 8

2.1 图像处理技术概述

  • 图像采集:利用设备获取可输入计算机的数字图像,这些设备主要完成:
    1. 根据接收到的电磁能量产生模拟电信号
    2. 进一步将模拟电信号转化为离散形式
  • 图像变换:将图像在不同空间转换的技术和过程
  • 图像增强:对图像进行加工,得到对具体应用来说视觉效果更“好”,更“有用”的图像
  • 图像恢复:根据图像退化的模型和知识重建或恢复原始的图像
  • 图像编码:对图像进行加工,采用新的表达方法以减小表示图像所需数据量的技术和过程,又称图像压缩,在需要消除图像中冗余数据时使用
  • 图像显示:多指 以空间亮度分布模式显示图像数据或其它类型的数据,主要目的:给人以直观可视的感觉

2.2 图像成像过程

需要考虑三个方面的问题:

  1. 几何:在图像中什么地方可发现目标?
  2. 辐射:图像中的目标有多亮,该亮度与目标和成像系统的光学特性有什么关系?
  3. 数字化和量化:当用一个数字矩阵表达图像并用数字计算机处理该图像会得到什么结果?

2.2.1 视觉过程

1705340-20190909214452065-1578201616.png

整体视觉过程:
1705340-20190909214528096-622979897.png

2.2.2 成像变换

投影成像:将 3-D 客观场景 投影 到 2-D 图像平面

成像过程:三个坐标系统

  1. 世界坐标系统 \(X,Y,Z\)
  2. 摄像机坐标系统 \(x, y, z\)
  3. 图像平面 \(x,y\)

\(X, Y, Z\)\(x,y,z\),从 \(x, y,z\)\(x, y\)
1705340-20190909214557626-1943393759.png

1705340-20190909214612044-1910628238.png

1705340-20190909214637136-655404565.png

1705340-20190909214646815-925200693.png

1705340-20190909214708087-766647044.png

2.2.3 成像亮度

2.2.4 视觉系统对光的感知特点

人眼适应的亮度范围:

  • 总体范围大:从暗视觉门限到炫目极限之间的范围在 \(10^{10}\) 量级
  • 具体范围小:一般范围在 \(10^{2}\) 量级

1705340-20190909214727547-1788365604.png

人类视觉系统 对亮度变化的感知 比 对亮度本身要敏感,人类视觉系统对光亮度的响应不是线性的,而是对数形式的。

2.2.5 采样和量化

\[ 图像 \rightarrow 数字图像 \\ f(x,y) \rightarrow l(r,c) \]

空间坐标的离散化叫做空间采样:\((x, y) \rightarrow (r,c)\)

幅度的离散化叫做幅度量化:\(f \rightarrow l\)

2.3 像素间联系

2.3.1 像素的领域

  • 4-邻域——\(N_4(p)\)

1705340-20190911211656742-1068499266.png

  • 对角领域——\(N_D(p)\)

1705340-20190911211218935-571907414.png

  • 8-领域——\(N_8(p)\)

1705340-20190911211231730-1430730879.png

2.3.2 像素间的邻接、连接和连通

  • 邻接:仅考虑像素间的空间关系

  • 连接:
    • 是否邻接
    • 灰度值是否满足某个特定的相似准则(同在一个灰度值集合中取值)
  • 连通:连接是连通的一种特例,由一系列依次连接的像素组成

    从具有坐标 \((x, y)\) 的像素 \(p\) 到具有坐标 \((s, t)\) 的像素 \(q\) 的一条通路由一系列具有坐标 \((x_0, y_0),(x_1, y_1),...,(x_n, y_n)\) 的独立像素组成。这里 \((x_0, y_0) = (x, y),(x_n, y_n) = (s, t)\),且 \((x_i, y_i)\)\((x_i-1, y_i-1)\) 邻接,其中 \(1 ≤ i≤n\)\(n\) 为通路长度

    4-连通,8-连通 ——>4-通路,8-通路

连接分为三种:

  • 4-连接:2个像素 \(p\)\(r\)\(V\) 中取值且 \(r\)\(N_4(p)\)

1705340-20190911211247348-568530946.png

  • 8-连接: 2个像素 \(p\)\(r\)\(V\) 中取值且 \(r\)\(N_8(p)\)
    1705340-20190911211258531-1807883110.png

  • m-连接(混合连接):2个像素 \(p\)\(r\)\(V\) 中取值且满足下列条件之一 :

    • \(r\)\(N_4(p)\)
    • \(r\)\(N_D(p)\) 中且集合 \(N_4(p) ∩ N_4(r)\) 不包含 \(V\) 中取值的像素
      1705340-20190911211316052-1501587964.png

混合连接的作用: 消除 8 连接可能产生的歧义性。

1705340-20190911211331505-111823986.png

​ note:(a) 为原始图,(b) 为8-连接,(c) 为混合连接

一些定义:

  1. 对2个图像子集 \(S\)\(T\) 来说,如果 \(S\) 中的一个或一些像素与 \(T\) 中的一个或一些像素邻接,则可以说图像子集\(S\)\(T\) 是邻接的;
  2. 完全在一个图像子集中的像素组成的通路上的像素集合构成该图像子集中的一个 连通组元
  3. 如果S 中只有1个连通组元,即S 中所有像素都互相连通,则称S 是一个连通集

2.3.3 像素间的距离

距离度量函数的一些要求:

前提:3个像素 \(p,q,r\),坐标 $(x, y),(s, t),(u, v) $

  1. $0 \le D(p,q) $ (\(D(p,q)=0,当且仅当 p=q\))两个像素之间的距离总是正的
  2. \(D(p,q)=D(q,p)\) 距离和起点、终点无关
  3. \(D(p,r) \le D(p,q)+D(q,r)\) 最短距离是沿直线的

距离度量函数:

  • 欧式距离
    \[ D_E(p,q) = [(x-s)^2 + (y-t)^2]^{\frac{1}{2}} \]

  • 城区距离
    \[ D_4(p,q) = |x-s|+|y-t| \]

  • 棋盘距离
    \[ D_8(p,q) = \max(|x-s|, |y-t|) \]
    1705340-20190911211355654-1307322937.png

    其中,上图 \(D_1(p,q)\) 代表城区距离,\(D_2(p,q)\) 代表欧式距离,\(D_\infty(p,q)\) 代表棋盘距离

距离计算示例:

1705340-20190911211414457-1872680087.png

用距离定义领域:

  • 4-领域:
    \[ N_4(p) = \{r| D_4(p,r)=1\} \]

  • 8-领域:
    \[ N_8(p) = \{r| D_8(p,r)=1\} \]

转载于:https://www.cnblogs.com/xxxxxxxxx/p/11494489.html

2015-08-03 17:37:01 qq_26898461 阅读数 1306

 图像处理,是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用。目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。此外,基于光学理论的处理方法依然占有重要的地位。

图像处理是信号处理的子类,另外与计算机科学人工智能等领域也有密切的关系。

传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪量化等。然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。

解决方案

影像强化

几十年前,图像处理大多数由光学设备在模拟模式下进行。由于这些光学方法本身所具有的并行特性,至今他们仍然在很多应用领域占有核心地位,例如全息摄影。但是由于计算机速度的大幅度提高,这些技术正在迅速的被数字图像处理方法所替代。

从通常意义上讲,数字图像处理技术更加普适、可靠和准确。比起模拟方法,它们也更容易实现。专用的硬件被用于数字图像处理,例如,基于流水线的计算机体系结构在这方面取得了巨大的商业成功。今天,硬件解决方案被广泛的用于视频处理系统,但商业化的图像处理任务基本上仍以软件形式实现,运行在通用个人电脑上。

常用的信号处理技术

大多数用于一维信号处理的概念都有其在二维图像信号领域的延伸,它们中的一部分在二维情形下变得十分复杂。同时图像处理也具有自身一些新的概念,例如,连通性旋转不变性,等等。这些概念仅对二维或更高维的情况下才有非平凡的意义。

图像处理中常用到快速傅立叶变换,因为它可以减小数据处理量和处理时间。

从一维信号处理扩展来的技术和概念

专用于二维(或更高维)的技术和概念

典型问题

  • 几何变换(geometric transformations):包括放大、缩小、旋转等。
  • 颜色处理(color):颜色空间的转化、亮度以及对比度的调节、颜色修正等。
  • 图像融合(image composite):多个图像的加、减、组合、拼接。
  • 降噪(image denoising):研究各种针对二维图像的去噪滤波器或者信号处理技术。
  • 边缘检测(edge detection):进行边缘或者其他局部特征提取。
  • 分割(image segmentation):依据不同标准,把二维图像分割成不同区域。
  • 图像编辑(image editing):和计算机图形学有一定交叉。
  • 图像配准(image registration):比较或集成不同条件下获取的图像。
  • 图像增强(image enhancement):
  • 图像数字水印(image watermarking):研究图像域的数据隐藏、加密、或认证。
  • 图像压缩(image compression):研究图像压缩。

应用

  • 摄影及印刷 (Photography and printing)
  • 卫星图像处理 (Satellite image processing)
  • 医学图像处理 (Medical image processing)
  • 面孔识别, 特征识别 (Face detection, feature detection, face identification)
  • 显微图像处理 (Microscope image processing)
  • 汽车障碍识别 (Car barrier detection)

软件工具

  • ImageJ [1]
  • OpenCV [2]
  • Rapidminer图像处理扩展 [3] -工具,图像处理和图像挖掘

相关相近领域


2019-10-21 18:42:20 potato_uncle 阅读数 274

注:本系列主要参考 中国大学MOOC 武汉理工大学 数字图像处理课程

一、数字图像处理的发展历史

20世纪20年代--报纸业:Bartline电缆图片传输系统

1964年--航天技术:航天图像的增强和复原技术

20世纪70年代--遥感卫星和医学:遥感图像增强和识别、X光断层图像重构

80年代末到90年代--多媒体技术:图像压缩、文字提取

二、数字图像处理的应用领域

1、医学应用:X线片、CT(Computed Tomography 计算机断层摄影术)、ECT、MRI

2、气象预报:气象云图

3、地球资源勘探:遥感图像

4、空间探索:月球图像、黑洞图像

5、工业生产:勘探、工业机器人、电路板焊接检测、

6、军事:卫星侦测、声纳图像

7、通信:视频、图像传真、数字电视

8、公安:指纹识别、伪钞识别

9、计算机合成图像

10、广告设计

三、数字图像的主要来源——电磁幅射波幅射成像

电磁幅射波包括:无线电波、微波、红外线、可见光、紫外线、X射线、γ射线

不同的电磁幅射波有各自不同的成像方式,其应用领域也不同

应用领域:

       紫外线验钞、红外线热成像

       γ射线:骨骼扫描、PET成像、反应器电子管成像

      X射线:主动脉造影图像、头部CT、电路板

     紫外线成像:谷物图像、星球图像

     可见光与红外成像:卫星图

     无线电波:核磁共振图像

2019-12-13 21:04:01 qq_38609606 阅读数 18

安卓开发技术-图像处理-概述


视频来源:Android核心技术之图像处理


我爱安卓

1.什么是Graphics(图形、图像)

(1)手机上显示的任何界面,无论是文字、按钮或图片,都是系统内置的一些API绘制的Graphics(图形、图像)。

(2)Graphics分为2D和3D两种,现在只针对2D进行学习。

(3)学习重点是处理图片。

(4)学会利用系统API绘制自定义的Graphics。

2.设计到的API

(1)Bitmap:位图,图片在内存中的存储格式

(2)Drawable:可绘制对象,可能是一张位图BitmapDrawable,也可能是一个图形ShapeDrawable,

          还有可能是一个图层    LayerDrawable,我们根据画图的需求,创建相应的可绘制对象。

(3)Canvas:画布,手机屏幕上用于绘制的目标区域

(4)Paint:画笔,画图工具,管理画图工具的字体、颜色、样式等展示效果。

(5)Matrix:矩阵,主要用于图片的缩放、平移、旋转等操作。

 

2019-09-03 15:56:11 botao_li 阅读数 171

概述

目前实时图像处理的硬件主要是 FPGA、GPU 和 DSP 三类。从笔者的开发经验来看,FPGA 以其实时性和灵活性占据主流;GPU 虽然不及DSP应用广泛,但是随着开发技术逐步升级和性能逐步提升,以及 DSP 技术自身的没落(个人观点,不讨论),GPU 在某些特定场景下可能是更优于 FPGA 的首选。

本系列文章主要说明基于 Xilinx FPGA 的实时图像处理。虽然 FPGA 开发用的 HDL 语言与 Intel FPGA(前身 Altera)通用,但是比较开发工具软件差异的话,还是 Xilinx 开发效率更高。

相关程序的开发软件环境为:

  • Vivado 2018.2.1 System Edition
  • Matlab 2017b

算法中的计算部分主要使用 Vivado 中的 System Generator 工具软件(下文简称sysgen),其具体使用方法见Xilinx官方文档:UG897 和 UG958。

sysgen 的开发基于 Matlab 的 Simulink 环境,使用 Xilinx 提供的功能模块在图形化界面进行 FPGA 开发,从原理上来说是使用图像化的功能模块来模拟 HDL 语言的功能

Xilinx 的原文说的是 Model Based DSP Design,虽然主要应用于 DSP(数字信号处理),不是ISP(Image Signal Processing),但是数字图像也是数字信号的一种,计算方法和原理差异不大。

使用 sysgen 的好处在于直观的图形开发环境以及与 Matlab 环境的完美融合,在仿真激励的生成和仿真结果分析时可以直接使用 Matlab 强大的数学计算库。相比较传统的基于 HDL 的仿真使用数据文件进行数据导入导出后才能进行仿真处理,sysgen 可以将这部分过程直接融入仿真流程,大幅减少了仿真的工作量。但是 sysgen 相比较灵活的 HDL 语言,也有一个比较大的劣势在于很难实现复杂的 FPGA 逻辑(比如状态机)。

除了 sysgen 以外,Xilinx 还有许多基于高级语言(c 语言,相较于 HDL 语言)的新的开发工具软件,如 HLS、SDSoc 等,笔者接触不多(无实际项目经验),但是直觉上认为这些软件只是用于降低 FPGA 的入门难度,提升开发效率,却在运行效率上做出了较大的妥协。随着编译器(或者综合工具)技术的提升,未来一定会成为 FPGA 开发的主流,但是现阶段还是有限使用为好。

本系列文章主要分为3个部分,首先说明了基本设计原则,包括代码、端口定义和数据缓冲等;之后是的主要内容,包括常用功能模块和常用算法模块。

注意:全部文章内容源于笔者自身的设计经验,并非“标准答案”,也许有更好的设计方法,欢迎各位朋友讨论。

基本设计原则

Verilog + sysgen

本系列全部设计使用 Verilog 语言,每个算法模块都以 Verilog 语言模块包含 sysgen IP 的方式构成。

根据 Verilog 和 sysgen 各自的开发优势,由 Verilog 负责复杂的逻辑处理(数据缓冲、状态机、参数更新等),由 sysgen 负责数值计算。

图像数据流水线格式

所有的图像处理算法按顺序串联成流水线依次执行,流水线上的图像数据使用统一的格式。

//输入图像数据
input [7:0] in_pix;//输入像素值,如果单通道灰度则只有1个端口in_gray,如果3通道RGB,则有3个并行端口in_r/in_g/in_b;数据位宽根据实际情况设置
input in_fv;//输入高电平有效帧同步,表示in_pix在1帧图像内的范围;上升沿与1帧内首个lv上升沿对齐,下降沿与1帧内最后1个lv下降沿对齐;2帧之间fv至少有1个时钟周期的低电平
input in_lv;//输入高电平有效行同步,表示in_pix在1行图像数据内的范围;2行之间lv至少有1个时钟周期的低电平
input [15:0] in_x;//输入列坐标,如果列数目为COLS,则数值范围0~(COLS-1);为保证通用性,数据位宽固定为16位;在fv与lv同时有效时数值有效,不考虑非有效情况下的坐标值
input [15:0] in_y;//输入行坐标,如果行数目为ROWS,则数值范围0~(ROWS-1);为保证通用性,数据位宽固定为16位;在fv与lv同时有效时数值有效,不考虑非有效情况下的坐标值
//输出图像数据
output [7:0] out_pix;
output out_fv;
output out_lv;
output [15:0] out_x;
output [15:0] out_y;

参数更新流程

如果对于单帧图像数据精确性要求不高,在不会导致进出算法模块数据流错误的情况下(即不影响上下游算法模块),算法模块可以从模块端口直接取用参数。

但是如果对于单帧图像数据精确性较高要求,则参数更新流程应当保证在一帧图像计算过程中参数值固定不变。

典型的算法模块参数端口定义如下:

input param_valid;//高有效参数有效标记,在外部模块或者外围设备更新参数开始之前,将valid信号置为低电平无效,所有参数更新完成后将valid信号回复高电平有效
input param_en;//高有效算法使能,在算法非使能情况下,将输入图像数据直接送出至输出端口;在非使能情况下,是否与使能情况下保持一致的数据延迟根据项目需求而定
input [7:0] param_a;//根据算法原理定义的1个或者多个算法参数;如果有浮点数参数,在Verilog中不作特殊处理,而是参数进入sysgen后将其定义为浮点数
input [31:0] param_b;

外部模块或者外围设备更新参数的流程:

  1. valid 信号置为低电平;
  2. 更新全部参数值;
  3. valid 信号置为高电平,表示参数有效。

算法模块内,对包括算法使能参数在内的全部算法参数定义对应的参数寄存器,算法模块使用参数寄存器中的参数值,而不是模块端口的参数值。在**输入 fv(in_fv)的下降沿(不是输出fv)**处检查 valid 信号是否有效:如果为高电平有效,则将当前模块端口的参数值写入参数寄存器;如果为低电平无效,则保持当前参数寄存器值。

注意:valid 信号即可以针对当前项目中所有的算法参数,也可以为每个算法单独定义 valid 信号。但是每个算法独立的 valid 信号没有必要,因为在单独更新某一个算法的参数过程中,如果其它算法模块发现 valid 无效依然会保持其原有的参数寄存器值,不受参数更新影响,在参数更新完成后,也只有指定的算法模块参数被新参数替换。

片外缓冲设计

许多图像处理算法或者输入输出逻辑都需要进行数据缓冲,如果 FPGA 片上 RAM 资源足够,使用 RAM 缓冲数据当然是最理想的情况,但是大多数情况需要缓冲的数据量实在太大。

因此片外 DDR 数据缓冲基本上是 FPGA 图像处理的标配。

这种情况下 DDR 缓冲的数据读写,及其与算法或者输入输出流程的匹配将是除图像算法以外最复杂的逻辑设计。

DDR 缓冲逻辑为了保证读写效率,必须与算法及数据流深度耦合,因此几乎没有太大的通用性考量,但是所有的片外缓冲设计必须包含数据流反压,数据流下游模块在处理不及时的情况下必须要求上游模块暂停数据下传,否则将造成数据丢失,甚至破坏整个图像处理的数据流水线。

数字图像处理笔记

阅读数 114

数字图像处理概述

阅读数 4303

图像拼接技术概述

阅读数 2771

没有更多推荐了,返回首页