`
qindongliang1922
  • 浏览: 2184348 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117541
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125930
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59928
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71301
社区版块
存档分类
最新评论

计算机图形处理的一些知识

阅读更多

最近在搞opencv来做一些简单的图像识别,既然涉及到图像识别,那么首先我们要把图像重新认识一下,大部分人看到一张照片可能就是单纯的一张照片,在一些做图像处理的人的眼中,可不就这么简单了。



### 计算机图形的分类

(1)位图(Bitmap)

也叫做点阵图,删格图象,像素图,简单的说,就是最小单位由象素构成的图,缩放会失真。构成位图的最小单位是象素,位图就是由象素阵列的排列来实现其显示效果的,每个象素有自己的颜色信息,在对位图图像进行编辑操作的时候,可操作的对象是每个象素,我们可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。举个例子来说,位图图像就好比在巨大的沙盘上画好的画,当你从远处看的时候,画面细腻多彩,但是当你靠的非常近的时候,你就能看到组成画面的每粒沙子以及每个沙粒单纯的不可变化颜色


(2)矢量图(Vector)


也叫做向量图,简单的说,就是缩放不失真的图像格式。矢量图是通过多个对象的组合生成的,对其中的每一个对象的纪录方式,都是以数学函数来实现的,也就是说,矢量图实际上并不是象位图那样纪录画面上每一点的信息,而是纪录了元素形状及颜色的算法,当你打开一付矢量图的时候,软件对图形象对应的函数进行运算,将运算结果[图形的形状和颜色]显示给你看。无论显示画面是大还是小,画面上的对象对应的算法是不变的,所以,即使对画面进行倍数相当大的缩放,其显示效果仍然相同[不失真]。举例来说,矢量图就好比画在质量非常好的橡胶膜上的图,不管对橡胶膜怎样的常宽等比成倍拉伸,画面依然清晰,不管你离得多么近去看,也不会看到图形的最小单位。


两者的优缺点:

位图的好处是,色彩变化丰富,编辑上,可以改变任何形状的区域的色彩显示效果,相应的,要实现的效果越复杂,需要的象素数越多,图像文件的大小[长宽]和体积[存储空间]越大。

矢量的好处是,轮廓的形状更容易修改和控制,但是对于单独的对象,色彩上变化的实现不如位图来的方便直接。另外,支持矢量格式的应用程序也远远没有支持位图的多,很多矢量图形都需要专门设计的程序才能打开浏览和编辑。

常用的位图绘制软件有adobe photoshop、corel painter等,对应的文件格式为[.psd .tif][.rif]等,另外还有[.jpg][.gif][.png][.bmp]等。

常用的矢量绘制软件有adobe illustrator、coreldraw、freehand、flash等,对应的文件格式为[.ai .eps][.cdr][.fh][.fla/.swf]等,另外还有[.dwg][.wmf][.emf]等。

矢量图可以很容易的转化成位图,但是位图转化为矢量图却并不简单,往往需要比较复杂的运算和手工调节。

矢量和位图在应用上也是可以相互结合的,比如在矢量文件中嵌入位图实现特别的效果,再比如在三维影象中用矢量建模和位图贴图实现逼真的视觉效果等等。


这两种图形都被广泛应用到出版,印刷,互联网[如flash和svg]等各个方面,他们各有优缺点,两者各自的好处几乎是无法相互替代的,所以,长久以来,矢量跟位图在应用中一直是平分秋色。



### 数字图像的分类


数字图像,是二维图像用有限数字数值像素的表示。通常,像素在计算机中保存为二维整数数组的光栅图像,这些值经常用压缩格式进行传输和储存。

数字图像可以许多不同的输入设备和技术生成,例如数码相机、扫描仪、坐标测量机、seismographic profiling、airborne radar等等,也可以从任意的非图像数据合成得到,例如数学函数或者三维几何模型,三维几何模型是计算机图形学的一个主要分支。数字图像处理领域就是研究它们的变换算法。


每个图像的像素通常对应于二维空间中一个特定的'位置',并且有一个或者多个与那个点相关的采样值组成数值。根据这些采样数目及特性的不同数字图像可以划分为:

(1)二值图像:

图像中每个像素的亮度值(Intensity)仅可以取自0或1的图像,因此也称为1-bit图像。

(2)灰度图像:

也称为灰阶图像: 图像中每个像素可以由0(黑)到255(白)的亮度值(Intensity)表示。0-255之间表示不同的灰度级。

(3)彩色图像 (Color image):

彩色图像主要分为两种类型,RGB及CMYK。其中RGB的彩色图像是由三种不同颜色成分组合而成,一个为红色,一个为绿色,另一个为蓝色。而CMYK类型的图像则由四个颜色成分组成:青C、品M、黄Y、黑K。CMYK类型的图像主要用于印刷行业。

(4)假彩色图像

(5)多光谱图像(Multi-spectral)
thematic

(6)立体图像:

立体图像是一物体由不同角度拍摄的一对图像,通常情况下我们可以用立体像计算出图像的深度信息。

(7)三维图像:

三维图像是由一组堆栈的二位图像组成。每一幅图像表示该物体的一个横截面。




### 常见的图像术语

(1)像素:

每张图片都是由色点组成的,每个色点称为一个像素。一张图片由30万个色点组成,这个图片的像素就是30W。我们常说相机是多少像素,这个像素就是说这款照相机的感器件有多少个,有100W个感光器件的相机就是100W像素的相机,有4000W个感光器件的相机就是4000W像素,以此类推。一台100W像素的相机拍摄的照片洗成5寸的照片会比洗成6寸清晰一点。

(2)图像分辨率:

图像分辨率是指每英寸图像内的像素点数。图像分辨率是有单位的,叫 像素每英寸。分辨率越高,像素的点密度越高,图像越逼真(这就是为什么做大幅的喷绘时,要求图片分辨率要高,就是为了保证每英寸的画面上拥有更多的像素点)。


(3)屏幕分辨率:

屏幕分辨率是屏幕每行的像素点数*每列的像素点数,每个屏幕有自己的分辨率。屏幕分辨率越高,所呈现的色彩越多,清晰度越高。





### 图像处理的一些降维手段


在图像识别领域,我们操作的基本都是位图,通常情况下,我们手机拍出来的照片我们称为彩色图像也称为:RGB图像,它既包含了颜色也包含了色彩强度(也可以成为亮度),反映到计算机里面,彩色图像是由3个维度组成:[ x,y,(R,G,B) ]其中R,G,B的每一个取值都可以是0-255之间的任意一个整数,所以我们称彩色图片是三维矩阵(matrix)= x * y * 3



在图像处理领域,通常在拿到一张彩色图片后,第一步基本都是先做灰度(grayscale),灰度图像,我们可以理解为它去掉了彩色图片中的颜色,只留下的色彩强度(也可以成为亮度)
,这样以来就变成了一个二维矩阵 = x * y * 1  组成是: [x,y,(0-255)]。

灰度是指黑白图像中点的颜色深度,范围一般从0到255,白色为255 ,黑色为0,故黑白图片也称灰度图像,在医学、图像识别领域有很广泛的用途,比如医学的X光,磁共振,CT出来的胶片都属于灰度照片。

彩色图片转灰度照片的几种方法:
````
1.浮点算法:Gray=R*0.3+G*0.59+B*0.11

2.整数方法:Gray=(R*30+G*59+B*11)/100

3.移位方法:Gray =(R*28+G*151+B*77)>>8;

4.平均值法:Gray=(R+G+B)/3;

 5.仅取绿色:Gray=G;
````




在做过灰度之后,下一步就是做二值化进一步简化色彩,整个图片只能有有黑白两种颜色,它仍然属于二维矩阵=x * y * 1 组成是: [x,y,(0 or (1 or 255))]。注意0代表黑色,1和255代表白色,灰度图片转为二值图片,非常简单就是把像素里面的亮度小于某一个阈值(通常是127)设置成0,大于127的转化为255通常用1代替。


这里看出来的基本思想就是降维,在图片降维后,它的处理复杂度变得更小,更有利于我们找图像的梯度或者特征值,当然并不是所有的图片处理都要这么做,也分场景。



### 总结:

本文介绍了计算机图形处理的相关基础知识,如图形的种类,数字图像的分类,处理图片的一些降维手段以及RGB图像与灰度和二值化的图像的区别,了解这些之后对于我们处理图像会有很大帮助,从而做到知其然也要知其所以然。


有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。 技术债不能欠,健康债更不能欠, 求道之路,与君同行。



参考链接:

https://zh.wikipedia.org/wiki/%E6%95%B0%E5%AD%97%E5%9B%BE%E5%83%8F

https://zh.wikipedia.org/wiki/%E7%9F%A2%E9%87%8F%E5%9B%BE%E5%BD%A2

https://zh.wikipedia.org/wiki/%E4%BD%8D%E5%9B%BE

http://www.cnblogs.com/areliang/archive/2006/04/29/388769.html

https://www.quora.com/Does-grayscale-image-means-1-dimensional-image

https://www.quora.com/What-is-the-difference-between-a-binary-image-and-a-gray-scale-image
0
0
分享到:
评论

相关推荐

    计算机图形学基础知识讲义

    计算机图形学是计算机科学的一个重要分支,主要研究如何利用计算机生成、处理和显示图像。它在游戏开发、电影特效、虚拟现实、工程设计等领域有着广泛的应用。这份“计算机图形学基础知识讲义”对于初学者来说,是一...

    计算机图形学知识点.pdf

    计算机图形学知识点.pdf 计算机图形学是一门交叉学科,涉及计算机科学、数学、美学和工程学等领域。它的主要研究内容包括计算机图形系统的硬件和软件,图形输入、处理、存储、显示和输出等技术,以及计算机图形学在...

    计算机图形学.pdf

    计算机图形学是一门研究如何使用数字计算机生成、处理和显示图形的学科,是计算机科学中最为活跃、得到广泛应用的一门分支。计算机图形学的主要研究内容包括图形硬件、图形标准、图形交互技术、光栅图形生成算法、...

    计算机图形学课件 图形学基本知识

    计算机图形学是一门深入研究如何使用计算机来表示、创建、处理...从早期的图形显示器到如今的高级图形处理系统,计算机图形学的演变反映了信息技术的飞速进步,而掌握这一领域的知识对于理解和创造数字化世界至关重要。

    计算机图形学作业答案

    计算机图形学的 作业答案涵盖了计算机图形学的基础知识和技术,包括图形系统、图像处理、图形生成技术等方面。 1. 图像的分辨率是指在水平和垂直方向上每单位长度所包含的像素点的数目。例如,在 240 像素/英寸下,...

    计算机图形学主要知识点

    计算机辅助设计与制造(CAD/CAM)利用这些工具,结合计算机硬件和图形输入输出设备,实现设计和制造过程中的图形处理。 交互式计算机图形系统具备计算、存储、对话、输入和输出等功能,用于创建真实感图形时,通常...

    计算机图形学PPT

    计算机图形学是一门涵盖广泛领域的学科,主要研究如何在计算机中表示、处理和显示图形信息。这份名为"计算机图形学PPT"的资料是针对这门学科的一套完整讲义,包含了从基础知识到实践应用的多个重要章节。下面将详细...

    计算机图形学 面试题

    计算机图形学面试题往往涉及计算机图形学的基本概念、图形处理方法、软硬件设备、科学计算可视化技术以及图形学在各个领域中的应用等内容。 首先,计算机图形学研究的是通过计算机将数据转换为图形,并在专门的设备...

    计算机图形学试题

    计算机图形学是计算机科学的一个重要分支,主要研究如何利用计算机生成、处理和显示图像。这份压缩包文件包含的是一系列关于计算机图形学的试题及答案,涵盖了从基础理论到实践应用的广泛知识领域。以下是对这些文件...

    计算机图形学-基于3D图形开发技术

    计算机图形学-基于3D图形...计算机图形学-基于3D图形开发技术涵盖了三维图形开发的基础知识,从游戏模型、顶点处理机制、欧拉转换、视见参数到投影矩阵、光栅化操作等方面,提供了一个系统的计算机图形学基础知识框架。

    广工2014计算机图形学考试试卷

    计算机图形学是一门涵盖广泛的学科,它涉及到计算机生成和处理图像的理论、算法和技术。在“广工2014计算机图形学考试试卷”中,我们可以预期涵盖了一系列的基础概念、原理以及应用。广州工业大学(简称广工)的这份...

    计算机图形学算法实现程序(全)

    这个压缩包“计算机图形学算法实现程序(全)”显然包含了大量关于计算机图形学算法的实际代码实现,对于学习和理解这一领域的知识非常有价值。下面将详细讨论其中可能涉及的一些关键知识点。 1. **基础概念**:首先...

    计算机图形学基础教程 孙正兴 周良 郑宏源编著

    计算机图形学是研究如何利用计算机技术来生成、处理、存储和显示图形信息的学科。随着计算机技术的快速发展,计算机图形学已经成为计算机科学中最为活跃的分支之一。它不仅涉及计算机科学领域,还与工程、医学、艺术...

    计算机图形学案例源码-孔令德

    计算机图形学是信息技术领域的一个重要分支,它涉及图像的生成、处理和显示,以及与之相关的算法和技术。在这个“计算机图形学案例源码-孔令德”资源中,初学者可以深入理解计算机图形学的基本概念和算法,进一步...

    计算机图形学课程设计报告

    在这个VB编写的计算机图形学课程设计项目中,我们可以深入理解计算机图形学的基本原理以及VB编程语言在图形处理中的应用。 首先,VB(Visual Basic)是微软开发的一种面向对象的编程语言,以其易学易用而受到初学者...

    计算机图形学课程设计

    计算机图形学是一门深入研究如何在计算设备上生成、处理和显示图像的学科。它广泛应用于游戏开发、电影特效、虚拟现实、科学可视化、工程设计等多个领域。在这个"计算机图形学课程设计"项目中,开发者使用Java编程...

    计算机图形学源码MFC实现

    计算机图形学是一门深入研究如何在计算机中表示和处理图形的学科,它广泛应用于游戏开发、虚拟现实、图像处理、科学可视化等领域。本资源“计算机图形学源码MFC实现”是基于C++编程语言,利用Microsoft Foundation ...

Global site tag (gtag.js) - Google Analytics