《OpenCV图像处理》——第2章 构建图像处理工具 2.1 基本数据类型

第2章 构建图像处理工具

2.1 基本数据类型

OpenCV中的基本数据类型是Mat,用来存储图像。总体上讲,一幅图像被保存为一个头加上一个包含像素数据的内存区。图像有若干个通道。灰度图像有一个通道,而彩色图像通常有红、绿和蓝三个构成成分(但是OpenCV以其逆序,即蓝、绿和红来存储这三个分量),还可以使用第四个透明度(alpha)通道。可以用img.channels()获取一幅img图像的通道数。
使用若干个位来存储一幅图像的每个像素,这被称为图像深度(image depth)。对于灰度图像,像素通常存储为8位,因此允许256个灰度级(从整数值0到255)。对于彩色图像,每个像素存储为3个字节,每个颜色通道占用一个字节。某些操作必须以浮点格式存储像素。可以使用img.depth()获取图像深度,其返回值是:
CV_8U,8位无符号整数(0~255)
CV_8S,8位有符号整数(-128~127)
CV_16U,16位无符号整数(0~65?535)
CV_16S,16位有符号整数(-32?768~32?767)
CV_32S,32位有符号整数(-2?147?483?648~2?147?483?647)
CV_32F,32位浮点数
CV_64F,64位浮点数
注意,对于灰度图像和彩色图像,最常见的图像深度是CV_8U。使用方法convertTo可以将一种图像深度转换为另一种图像深度:

在浮点图像上进行操作(即像素值是数学运算的结果)是很常见的。如果使用imshow()显示这幅图像,将不会看到任何有意义的内容。在这种情况下,必须将像素转换到0~255整数范围。函数convertTo实现一种线性变换并有两个额外的参数alpha和beta,分别表示增加一个尺度因子和一个增量值。这意味着每个像素p被转
换为:
newp = alpha*p + beta
它可以用来正确地显示浮点图像。假设img图像有最小值m和最大值M(参考下面的代码,看看如何获取这些值),则我们可以使用:

这些代码将结果图像值的范围映射到0~255范围。图2-1显示了运行该代码的
结果。

使用行属性和列属性可以获取图像的大小。还有一个size属性可获得二者:

除了图像本身,其他数据类型都很常见,请参考表2-1:

其中某些类型有附加操作。例如,可以检查一个点是否位于一个矩形内:

这里的参数p和参数r分别是点(二维)和矩形。注意,在任何情况下,表2-1并不是非常完备的;OpenCV的相关方法提供了更多的支撑结构。

时间: 2024-10-23 05:15:13

《OpenCV图像处理》——第2章 构建图像处理工具 2.1 基本数据类型的相关文章

《数字图像处理与机器视觉——Visual C++与Matlab实现》——1章 Matlab图像处理编程基础

第1章 Matlab图像处理编程基础 数字图像处理与机器视觉--Visual C++与Matlab实现 Matlab是Mathworks公司开发的一款工程数学计算软件.不同于C++.Java.Fortran等高级编程语言是对机器行为进行描述,Matlab是对数学操作进行更直接的描述.Matlab图像处理工具箱(Image Processing Toolbox,IPT)封装了一系列针对不同图像处理需求的标准算法,它们都是通过直接或间接调用Matlab中的矩阵运算和数值运算函数来完成图像处理任务的.

《数字图像处理与机器视觉——Visual C++与Matlab实现》——第0章 数字图像处理概述

第0章 数字图像处理概述 数字图像处理与机器视觉--Visual C++与Matlab实现图像是指能在人的视觉系统中产生视觉印象的客观对象,包括自然景物.拍摄到的图片.用数学方法描述的图形.图像的要素有几何要素(刻画对象的轮廓.形状等)和非几何要素(刻画对象的颜色.材质等). 本章中,我们主要讲解数字图像的实质和数字图像处理的一般步骤,以及后面会经常使用到的基本概念. 本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.

《配置管理最佳实践》——第2章 构建工程 2.1为什么构建工程如此重要

第2章 构建工程 构建工程是高效地把源代码生成二进制文件的学科.构建工程可以很简单,例如仅仅执行一下 Makefile 或者 Ant 脚本:也可以很复杂,比如写一个完整的支持底层技术架构的构建框架.在本章中,我们将会讨论构建工程中遇到的挑战.构建工程的核心技术,以及一些选择合适构建工具的方法.我们也会讨论如何挑选和培养构建工程师.如果公司里现在没有一个合格的构建工程师,建议利用已有的资源去完成现在的工作.配置管理中构建工程是最具挑战性和最有意义的角色. 本章全面介绍了构建工程的方方面面,包括目标

页面构建小工具

我们将在本文中介绍一些关于页面构建常用的一些小工具,大部分是基于firefox的插件,通过这些小工具可以让我们在页面构建中事半功倍. 页面构建必备工具 - Firebug 相信每个页面构建的同学都有这个工具吧?如果没有的话,你赶紧安装(点击此处安装),Firebug就像它的名字一样,帮你找到虫子,烧掉它!同时有一些firefox的页面调试工具也是基于Firebug的,比如Yslow , CSS Usage 网页测量利器– MeasureIt 当我们拿到一个设计稿,写完基本的结构后,我们的测量工具

《构建高可用VMware vSphere 5.X虚拟化架构》——第1章 构建高可用ESXi主机 1.1 物理服务器的选择

第1章 构建高可用ESXi主机 对于VMware vSphere虚拟化实施人员以及管理人员来说,可以使用HA等高级特性来实现ESXi主机出现故障后迁移到其他ESXi主机.ESXi主机的稳定性.平均无故障时间在生产环境中是相当关键的技术指标.ESXi主机如何可以称为高可用?从生产环境来说,ESXi主机所使用的物理服务器硬件配置是高可用ESXi主机的基础,其次ESXi版本也是高可用ESXi主机的另一个重点. 本章介绍如何选择物理服务器.如何对 ESXi 4.1 主机进行升级.如何使用 VMware

《构建高可用VMware vSphere 5.X虚拟化架构》——第2章 构建高可用vCenter Server 2.1vCenter Server版本以及运行环境的选择

第2章 构建高可用vCenter Server Center Server是VMware vSphere虚拟化架构核心的管理平台,从vCenter Server 4.0版本到最新5.5版本,每一次版本的升级,都带来前所未有的体验.从5.1版本开始,VMware官方更重视其管理平台的安全,SSO是一大亮点. 2.1 vCenter Server版本以及运行环境的选择 在进行高可用vCenter Server构建之前,必须先确定vCenter Server所使用的版本以及运行环境. 2.1.1 vC

《21天学通HTML+CSS+JavaScript Web开发(第7版)》——第2章 准备好工具 2.1网站剖析

第2章 准备好工具 无论是编写图书还是给房间刷漆,您都不会草率行事,抓起刷子就干或立即坐在计算机前敲字,而是先制定完成项目的计划并搜集完成项目所需的材料.您的计划可能很简单--先刷墙再刷天花板,也可能很复杂--详细列出您要写到书中的每项内容. 搜集材料方面亦如此.如果您要给房间刷漆,就需要刷子和油漆,还有防止油漆落在其他地方的东西.同样,如果您要编写图书,就需要安装字处理程序,还可能需要搜集为写作提供支持的研究材料.与其他大多数项目一样,设计并编写网页也需要思考并制定计划,然后再着手处理文本和图

《Hadoop集群与安全》一第1章 构建Hadoop集群

第1章 构建Hadoop集群 Hadoop是一款免费开源的分布式存储和计算平台.在构建该平台后,用户可以使用商用硬件中的集群来存储和处理大量数据.在过去的数年中,Hadoop已经成为大数据项目的事实标准.本章会讲述以下内容:选择Hadoop集群硬件.Hadoop发行版.为Hadoop集群选择操作系统.本章会讲解为Hadoop集群选择和配置硬件的概念,还会介绍不同的Hadoop发行版(其数量每年都在增加)以及它们之间的异同点.无论读者是Hadoop管理员还是架构师,构建集群的第一步是确定使用硬件的

《Photoshop混合模式深度剖析》—第2章构建参考图像

构建参考图像 Photoshop混合模式深度剖析 实现色彩混合或是其他效果的方法有很多,很多人更习惯于处理真实的照片,但我更喜欢通过抽象的示意图来解决问题.因此,我需要建立示例文件,并调整各种参数以实现预期的效果,这样就不会受到真实照片中复杂色彩的干扰.使用这种方法的关键是,注意操作和根据色彩及其他调整而生成的结果之间的关系.尽管可以设计许多其他文件和方案,但最好的测试方法通常是处理自己想要调整的图像.将参考文件放在触手可及之处,或者是在灵感来临时构建参考文件,这是更好地处理具体图像的一种方式.