博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.2 数字图像处理与识别...
阅读量:6591 次
发布时间:2019-06-24

本文共 1799 字,大约阅读时间需要 5 分钟。

本节书摘来自异步社区出版社《数字图像处理与机器视觉——Visual C++与Matlab实现》一书中的第0章,第0.2节,作者: 张铮 , 王艳平 , 薛桂香,更多章节内容可以访问云栖社区“异步社区”公众号查看。

0.2 数字图像处理与识别

数字图像处理与机器视觉——Visual C++与Matlab实现

0.2.1 从图像处理到图像识别

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

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

icon-info提示:

后文中,如无特别说明,我们通常使用广义的图像处理概念,即用数字图像处理这个词涵盖上文所提到的图像处理和数字图像分析;而对图像识别和机器视觉的概念常常不加区分,尽管严格地说识别只对应于高级视觉的范畴。

0.2.3 数字图像处理和识别的应用实例

如今,数字图像处理与机器视觉的应用越来越广泛,已经渗透到国家安全、航空航天、工业控制、医疗保健等各个领域乃至日常生活和娱乐当中,在国民经济中发挥着举足轻重的作用。

一些典型的应用如表0.2所示。

image

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

你可能感兴趣的文章
oracle-3-子查询和常用函数
查看>>
item2
查看>>
云计算面临安全挑战
查看>>
C# 线程手册 第三章 使用线程 Monitor.TryEnter()
查看>>
分享11个超棒的移动应用(mobile apps)开发解决方案
查看>>
C/C++获取文件大小
查看>>
深入理解Java内存模型(五)——锁
查看>>
Chalubo僵尸网络来袭 IOT设备或将受到DDoS攻击
查看>>
如何实现百万TPS?详解JMQ4的存储设计
查看>>
这么说吧,NIO很简单,其实就是个牛逼IO
查看>>
使用Python快速获取公众号文章定制电子书(二)
查看>>
iOS下JS与OC互相调用(七)--Cordova 基础
查看>>
Three.js 关于立方体贴图产生边缘锯齿问题
查看>>
Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
查看>>
【开发问题记录①】关于滑动CollectionView时ContentSize变化的问题
查看>>
java中GC的基本概念
查看>>
building xxx gradle project info的解决办法
查看>>
Vagrant (一) - 基本知识
查看>>
在 CentOS 7 上搭建 Jenkins + Maven + Git 持续集成环境
查看>>
数据结构与算法 | Leetcode 19. Remove Nth Node From End of List
查看>>