计算机视觉入门基础——计算机如何‘看’片

更多深度文章,请关注:https://yq.aliyun.com/cloud



计算机视觉是一门研究如何使机器‘看’的科学,我们都喜欢看美丽的图像,但是你有没有想过计算机是如何看这些图像的?接下来,我会详细介绍说明计算机如何处理图像的。

看到上面的图像,一个正常的人可以很容易地知道,图像中有一只猫。但是,计算机可以真正看到猫吗?答案是否定的,计算机看到数字矩阵(0到255之间)。一般来说,我们可以将图像分类为灰度图像或彩色图像。首先,我们先讨论灰度图像然后再讨论彩色。上图是灰度图像,图像中每个像素都表示的是像素的亮度,下面我们就说一说这个亮度问题。了解更多关于像素。让我们先来看看上面图片中计算机是怎么看的。

我已将上面的图像大小调整为18 * 18,以便于理解。与我们不同的是,计算机将图像看作2D矩阵。你可能听说有人说这幅画的大小是1800 * 700或1300 * 700,这个大小显示了一个图像的宽度和高度。换句话说,如果大小为1300 * 700,则水平方向为1300像素,垂直方向为700像素。这意味着总共有910000(1300 * 700)像素。如果图像的大小为700 * 500,那么矩阵的维数将为(700,500)。这里,矩阵中的每个元素(像素)表示该像素中的亮度强度这里,0表示黑色,255表示白色,数字越小,越接近黑色(数字大小决定黑的程度)。

彩色图像

在灰度图像中,每个像素表示仅一种颜色的强度。换句话说,它有一个通道。而在彩色图像中,我们有3个通道RGB(红,绿,蓝)。标准数码相机都有3(RGB)通道。

 

如上图所示,彩色图像由红色、绿色和蓝色三个通道组成。现在的问题是,计算机如何看待这个形象?同样,答案是他们看到矩阵。现在下一个问题应该是,我们要如何在矩阵中表示这个图像,因为它有3个通道,与我们只有一个通道的灰度图像不同。在这种情况下,我们利用3D矩阵来实现表示彩色图像。我们有一个通道的矩阵,但在这种情况下,我们将有三个矩阵堆叠在一起,这就是为什么它是3D。700 * 700彩色图像的尺寸将为(700,700,3)。假设第一个矩阵表示红色通道,则该矩阵的每个元素表示该像素中的红色强度,同样为绿色和蓝色。通常,彩色图像中的每个像素具有与其相关联的三个数字(0至255)。这些数字表示该特定像素中的红色、绿色和蓝色的强度。至于为什么是红绿蓝这三色,想必大家都知道色度学的最基本原理,即三基色原理。大多数颜色都可以通过三色按照不同的比例混合产生。

结论

计算机将图像看作矩阵。灰度图像具有一个通道(灰色),因此我们可以在2D矩阵中表示灰度图像,其中每个元素表示该特定像素中亮度的强度。记住,0表示黑色,255表示白色。灰度图像有一个通道,而彩色图像有三个通道RGB(红、绿、蓝)。我们可以在深度为3的3D矩阵中表示彩色图像。

文章原标题《How do computers see an image ?》,作者:Savan Visalpara

作者个人网站:https://savan77.github.io/,可以与作者交流。

译者:袁虎,审阅:李烽 阿福

文章为简译,更为详细的内容,请查看原文

时间: 2024-09-04 09:59:39

计算机视觉入门基础——计算机如何‘看’片的相关文章

让计算机可以看懂这个世界

摘要: 站在风口上,猪都能飞起来.但关键是下一个风口会在哪里?不同的人肯定有不同的看法,比尔盖茨给出的答案:IT界的下一个大事件是 计算机视觉(computer vision) 与 深度学习(deep 站在风口上,猪都能飞起来.但关键是下一个风口会在哪里?不同的人肯定有不同的看法,比尔·盖茨给出的答案:IT界的下一个大事件是 计算机视觉(computer vision) 与 深度学习(deep learning) 的结合.今年6月中旬访问北京时,他到访的第一家创业公司也是一家计算机视觉的公司.

Retrofit 入门基础

本文讲的是Retrofit 入门基础, 这是Retrofit系列文章中的第一篇,这个系列前前后后有几个用例,并且还分析了Retrofit的功能性和可扩展性. - 2015.10.21日更新 除了之前已经有的关于Retrofit 1.9的代码样例,我们也已经添加了新的关于Retrofit 2(基于 2.0.0-beta2)的代码样例. 并且也已经发布了一个扩展的Retrofit更新指南:在下述内容的 . 文章概述 通过这篇博客,我们会学到Retrofit的基本用法和实现一个针对API或者HTTP请

Manifest.xml 入门基础 (四) <application>标签

Manifest.xml 入门基础 (四) <application>标签 一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon,label,permission等) <application android:allowClearUserData=["true" | "false"] android:allowTaskReparenting=["true

Manifest.xml 入门基础(一) 概述与&amp;lt;manifest&amp;gt;标签

Manifest.xml 入门基础 (一)概述与<manifest>标签 第零讲 概述 每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误). 清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码. 此外,清单文件还可执行以下操作: (1)为应用的 Java 软件包命名.软件包名称充当应用的唯一标识符. (2)描述应用的各个组件,包括构成应用的 Activity.服务.广播接收器和内容提供程序.它还为实现每

json 入门基础教程 推荐_json

如果您阅读了本系列前面的文章,那么应已对数据格式有了相当的认识.前面的文章解释了在许多异步应用程序中如何恰当地使用纯文本和简单的名称/值对.可以将数据组合成下面这样的形式: firstName=Brett&lastName=McLaughlin&email=brett@newInstance.com   这样就行了,不需要再做什么了.实际上,Web 老手会意识到通过 GET 请求发送的信息就是采用这种格式. 然后,本系列讨论了 XML.显然,XML 得到了相当多的关注(正面和负面的评价都有

Oracle PL/SQL语言入门基础_oracle

正在看的ORACLE教程是:Oracle PL/SQL语言入门基础.PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序. PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便利性,那么你很难想象ORACLE缺了PL

基于Oracle的面向对象技术入门基础简析开发者网络Oracle_oracle

正在看的ORACLE教程是:基于Oracle的面向对象技术入门基础简析开发者网络Oracle.一.概述 对象是Oracle8i以上版本中的一个新的特性,对象实际是对一组数据和操作的封装,对象的抽象就是类.在面向对象技术中,对象涉及到以下几个重要的特性:  封装性 通过对数据和操作的封装,将用户关心的数据和操作暴露出来作为接口,其他数据和操作则隐藏到对象内部,这样便于用户使用和维护.  继承性 对象具有继承性,通过这一特性可以增强程序的可扩展性,适合大型项目的开发.  多态性 同一操作在运行时刻有

《UG NX10中文版完全自学手册》——第1章 UG NX10入门基础1.1 UG NX10的启动

第1章 UG NX10入门基础 UG(Unigraphics)是Unigraphics Solutions公司推出的集CAD/CAM/ CAE为一体的三维机械设计平台,也是当今世界广泛应用的计算机辅助设计.分析和制造软件之一,广泛应用于汽车.航空航天.机械.消费产品.医疗器械和造船等行业.它为制造行业产品开发的全过程提供解决方案,功能包括概念设计.工程设计.性能分析和制造.本章主要讲解UG软件界面的工作环境,并简单讲解如何自定义工具栏. 重点与难点 UG NX10的启动 工作环境 功能区的定制

《UG NX9中文版完全自学手册》——第1章 UG NX9入门基础 1.1 UG NX9的启动

第1章 UG NX9入门基础 UG(Unigraphics)是Unigraphics Solutions公司推出的集CAD/CAM/ CAE为一体的三维机械设计平台,也是当今世界广泛应用的计算机辅助设计.分析和制造软件之一,广泛应用于汽车.航空航天.机械.消费产品.医疗器械和造船等行业.它为制造行业产品开发的全过程提供解决方案,功能包括概念设计.工程设计.性能分析和制造.本章主要讲解UG软件界面的工作环境,以及简单讲解如何自定义工具栏. 1.1 UG NX9的启动 UG NX9中文版完全自学手册