《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》一一0.2 数字图像处理与机器视觉

本文涉及的产品
图像搜索,7款服务类型 1个月
简介:

本节书摘来自异步社区出版社《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》一书中的第0章,第0.2节,作者:张铮 , 徐超 , 任淑霞 , 韩海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

0.2 数字图像处理与机器视觉

**数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)
0.2.1 从图像处理到图像识别**
图像处理、图像分析和图像识别是认知科学与计算机科学中的一个令人兴奋的活跃分支。从1970年这个领域经历了人们对其兴趣的爆炸性增长以来,到20世纪末逐渐步入成熟。其中遥感、技术诊断、智能车自主导航、医学平面和立体成像以及自动监视领域是发展最快的一些方向。这种进展最集中地体现在市场上多种应用这类技术的产品的纷纷涌现。事实上,从数字图像处理到数字图像分析,再发展到最前沿的图像识别技术,其核心都是对数字图像中所含有的信息的提取及与其相关的各种辅助过程。

1.数字图像处理
数字图像处理(Digital Image Processing)就是指使用电子计算机对量化的数字图像进行处理,具体地说就是通过对图像进行各种加工来改善图像的外观,是对图像的修改和增强。

图像处理的输入是从传感器或其他来源获取的原始的数字图像,输出是经过处理后的输出图像。处理的目的可能是使输出图像具有更好的效果,以便于人的观察;也可能是为图像分析和识别做准备,此时的图像处理是作为一种预处理步骤,输出图像将进一步供其他图像进行分析、识别算法。

2.数字图像分析
数字图像分析(Digital Image Analyzing)是指对图像中感兴趣的目标进行检测和测量,以获得客观的信息。数字图像分析通常是指将一幅图像转化为另一种非图像的抽象形式,例如图像中某物体与测量者的距离、目标对象的计数或其尺寸等。这一概念的外延包括边缘检测和图像分割、特征提取以及几何测量与计数等。

图像分析的输入是经过处理的数字图像,其输出通常不再是数字图像,而是一系列与目标相关的图像特征(目标的描述),如目标的长度、颜色、曲率和个数等。

3.数字图像识别
数字图像识别(Digital Image Recognition)主要是研究图像中各目标的性质和相互关系,识别出目标对象的类别,从而理解图像的含义。这往往囊括了使用数字图像处理技术的很多应用项目,例如光学字符识别(OCR)、产品质量检验、人脸识别、自动驾驶、医学图像和地貌图像的自动判读理解等。

图像识别是图像分析的延伸,它根据从图像分析中得到的相关描述(特征)对目标进行归类,输出使用者感兴趣的目标类别标号信息(符号)。

总而言之,从图像处理到图像分析再到图像识别这个过程,是一个将所含信息抽象化,尝试降低信息熵,提炼有效数据的过程,如图0.5所示。

从信息论的角度上说,图像应当是物体所含信息的一个概括,而数字图像处理侧重于将这些概括的信息进行变换,例如升高或降低熵值,数字图像分析则是将这些信息抽取出来以供其他过程调用。当然,在不太严格时,数字图像处理也可以兼指图像处理和分析。

image

读者或许也听过另一个概念,计算机图形学(Computer Graphics)。此概念与数字图像分析大致相反,它是一个对由概念或数学表述的物体图像进行处理和显示的过程。

0.2.2 什么是机器视觉
机器视觉(Machine Vision),又称计算机视觉(Computer Vision)。它是将数字图像处理和数字图像分析、图像识别结合起来,试图开发出一种能与人脑的部分机能比拟,能够理解自然景物和环境的系统,在机器人领域中为机器人提供类似人类视觉的功能。计算机视觉是数字成像领域的尖端方向,具有最综合的内容和最广泛的涵盖面。

提示 后文中,如无特别说明,文章通常使用广义的图像处理概念,即用数字图像处理这个词涵盖上文所提到的图像处理和数字图像分析;而对于图像识别和机器视觉的概念常常不加区分,尽管严格地说识别只对应于高级视觉的范畴。
0.2.3 数字图像处理和识别的应用实例
如今,数字图像处理与机器视觉的应用越来越广泛,已经渗透到国家安全、航空航天、工业控制、医疗保健等各个领域乃至人们的日常生活和娱乐当中,在国民经济中发挥着举足轻重的作用。

image

下面结合两个典型的应用来说明。

1.图像处理的典型案例——X光照片的增强
图0.6中的两幅图片,图0.6(a)是一幅直接拍摄未经处理的X光照片,对比度较低,图像细节难以辨识;图0.6(b)中呈现了图0.6(a)经过简单的增强处理后的效果,图像较为清晰,可以有效地指导诊断和治疗。从中读者应该可以看出图像处理技术在辅助医学成像上的重要作用。

image

2.图像识别的典型案例——ALVINN汽车自动驾驶系统
著名的自动驾驶系统ALVINN是人工神经网络(关于人工神经网络的介绍详见第15章)的一个典型的应用。该系统使用一个经过训练的神经网络以正常速度在高速公路上驾驶汽车。如图0.7(b)所示,ALVINN具有一个典型的3层结构,网络的输入层共有30×32个单元,对应于一个30×32的像素点阵,是由一个安装在车辆上的前向摄像机获取的图像经过重采样得到的。输出层共有30个单元,输出情况指出了车辆行进的方向。

image

在训练阶段,ALVINN以人类驾驶时摄像机所捕获的前方交通状况作为输入,以人类通过操作方向盘给出的前进方向作为目标输出,整个训练过程大约5分钟;在测试阶段,ALVINN用学习到的网络在高速公路上以的时速成功地驾驶了。

注 (a)为车内的摄像头和前方的实际情况;(b)为ALVINN的网络结构,摄像头捕获图像的30×32的重采样图像被作为网络的输入,对应于960个输入层单元,这些输入又连接至4个隐藏单元,再连接到30个输出单元,输出为一个30维向量,相当于把整个方向盘的控制范围分成30份,每个输出单元对应一个特定的驾驶方向,决策结果为输出值最大的单元对应的行驶方向。

相关文章
|
8月前
|
Windows
Microsoft Visual C++2015-2019 安装失败 0x80240017
Microsoft Visual C++2015-2019 安装失败 0x80240017
218 0
|
6月前
|
编译器 开发工具 C++
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
3506 0
|
7月前
|
存储 分布式数据库 API
技术好文:VisualC++查看文件被哪个进程占用
技术好文:VisualC++查看文件被哪个进程占用
|
4月前
|
C++ 内存技术
[转]Visual C++内嵌swf文件并播放
[转]Visual C++内嵌swf文件并播放
|
5月前
|
安全 编译器 C++
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
这些是Microsoft Visual C++不同版本的Redistributable安装包,用于32位系统,确保相关应用正常运行。它们提供C++运行时环境,简化部署流程,支持第三方库及框架,并确保应用兼容性。定期更新可修复问题并引入新功能。在空间有限或需解决程序冲突时可考虑删除,但需谨慎操作以防影响应用稳定性和兼容性。删除前请确认无应用依赖,并通过控制面板安全卸载。
292 1
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
|
6月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
256 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
5月前
|
缓存 C++ Windows
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别
Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别
|
5月前
|
编译器 C++ 开发者
Visual Studio属性表:在新项目中加入已配置好的C++库
通过以上步骤可以确保Visual Studio中新项目成功地加入了之前已配置好的C++库。这个过程帮助开发者有效地管理多个项目中共享的库文件,提升开发效率。
132 0
|
7月前
|
JSON 开发工具 C语言
编程入门(五)【Visual Studio Code安装与C/C++语言运行】
编程入门(五)【Visual Studio Code安装与C/C++语言运行】
777 0
|
8月前
|
存储 C++ Python
LabVIEW使用Python MathWorks® MATLAB®软件和C/C++
LabVIEW使用Python MathWorks® MATLAB®软件和C/C++
81 0