[转载] Image Types
转载自https://www.mathworks.com/help/matlab/creating_plots/image-types.html
Image Types
Indexed Images
An indexed image consists of a data matrix, X, and a colormap matrix, map. map is an m-by-3 array of class double containing floating-point values in the range [0, 1]. Each row of map specifies the red, green, and blue components of a single color. An indexed image uses “direct mapping” of pixel values to colormap values. The color of each image pixel is determined by using the corresponding value of X as an index into map. Values of X therefore must be integers. The value 1 points to the first row in map, the value 2 points to the second row, and so on. Display an indexed image with the statements
image(X); colormap(map)
A colormap is often stored with an indexed image and is automatically loaded with the image when you use the imread function. However, you are not limited to using the default colormap—use any colormap that you choose. The description for the property CDataMapping describes how to alter the type of mapping used.
The next figure illustrates the structure of an indexed image. The pixels in the image are represented by integers, which are pointers (indices) to color values stored in the colormap.

The relationship between the values in the image matrix and the colormap depends on the class of the image matrix. If the image matrix is of class double, the value 1 points to the first row in the colormap, the value 2 points to the second row, and so on. If the image matrix is of class uint8 or uint16, there is an offset—the value 0 points to the first row in the colormap, the value 1 points to the second row, and so on. The offset is also used in graphics file formats to maximize the number of colors that can be supported. In the preceding image, the image matrix is of class double. Because there is no offset, the value 5 points to the fifth row of the colormap.
Grayscale (Intensity) Images
A grayscale image, sometimes referred to as an intensity image, is a data matrix I whose values represent intensities within some range. A grayscale image is represented as a single matrix, with each element of the matrix corresponding to one image pixel. The matrix can be of class double, uint8, or uint16. While grayscale images are rarely saved with a colormap, a colormap is still used to display them. In essence, grayscale images are treated as indexed images.
This figure depicts a grayscale image of class double.

To display a grayscale image, use the imagesc (“image scale”) function, which enables you to set the range of intensity values. imagesc scales the image data to use the full colormap. Use the two-input form of imagesc to display a grayscale image, for example:
imagesc(I,[0 1]); colormap(gray);
The second input argument to imagesc specifies the desired intensity range. The imagesc function displays I by mapping the first value in the range (usually 0) to the first colormap entry, and the second value (usually 1) to the last colormap entry. Values in between are linearly distributed throughout the remaining colormap colors.
Although it is conventional to display grayscale images using a grayscale colormap, it is possible to use other colormaps. For example, the following statements display the grayscale image I in shades of blue and green:
imagesc(I,[0 1]); colormap(winter);
To display a matrix A with an arbitrary range of values as a grayscale image, use the single-argument form of imagesc. With one input argument, imagesc maps the minimum value of the data matrix to the first colormap entry, and maps the maximum value to the last colormap entry. For example, these two lines are equivalent:
imagesc(A); colormap(gray)
imagesc(A,[min(A(:)) max(A(:))]); colormap(gray)
RGB (Truecolor) Images
An RGB image, sometimes referred to as a truecolor image, is stored as an m-by-n-by-3 data array that defines red, green, and blue color components for each individual pixel. RGB images do not use a palette. The color of each pixel is determined by the combination of the red, green, and blue intensities stored in each color plane at the pixel's location. Graphics file formats store RGB images as 24-bit images, where the red, green, and blue components are 8 bits each. This yields a potential of 16 million colors. The precision with which a real-life image can be replicated has led to the nickname “truecolor image.”
An RGB MATLAB array can be of class double, uint8, or uint16. In an RGB array of class double, each color component is a value between 0 and 1. A pixel whose color components are (0,0,0) is displayed as black, and a pixel whose color components are (1,1,1) is displayed as white. The three color components for each pixel are stored along the third dimension of the data array. For example, the red, green, and blue color components of the pixel (10,5) are stored in RGB(10,5,1), RGB(10,5,2), and RGB(10,5,3), respectively.
To display the truecolor image RGB, use the image function:
image(RGB)
The next figure shows an RGB image of class double.

To determine the color of the pixel at (2,3), look at the RGB triplet stored in (2,3,1:3). Suppose (2,3,1) contains the value 0.5176, (2,3,2) contains 0.1608, and (2,3,3) contains 0.0627. The color for the pixel at (2,3) is
0.5176 0.1608 0.0627
[转载] Image Types的更多相关文章
- Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake (转载)
One of the top suggestions (currently #15 on uservoice) for improving C# is the addition of non-null ...
- RTP与RTCP协议介绍(转载)
RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...
- 转载:《TypeScript 中文入门教程》 13、类型兼容性
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 TypeScript里的类型兼容性基于结构子类型的. 结构类型是只一种只使用其成 ...
- RS-232, RS-422, RS-485 Serial Communication General Concepts(转载)
前面转载的几篇文章重点介绍了UART及RS-232.在工控领域除了RS-232以外,常用的串行通信还有RS-485.本文转载的文章重点介绍了RS-232.RS-422和RS-485. Overview ...
- C#反射机制 (转载)
转载:原文出处 http://www.cnblogs.com/binfire/archive/2013/01/17/2864887.html 一:反射的定义 审查元数据并收集关于它的类型信息 ...
- [转载]config文件的一个很好的实现
以下是转载于网上的一个很好的config文件的实现,留存以备案 //Config.h #pragma once #include <string> #include <map> ...
- JAVA泛型详解2 转载
转载地址:http://www.cnblogs.com/sunwei2012/archive/2010/10/08/1845938.html 普通泛型 class Point<T>{ // ...
- JDBC 内部资料 请勿转载 谢谢合作
一.JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connect ...
- python "yield"(转载)
转载地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 您可能听说过,带有 yield 的函数在 Python ...
- [转载]Context and Interception : The .NET Context
转载自:Context and Interception : The .NET Context Every new app domain starts with a single context, c ...
随机推荐
- H3C MS4300V2配置mac地址与接口绑定
配置mac地址与接口绑定 例: <h3c>system-view //进入系统视图 [h3c]int g 1/0/45 //进入45接口 [h3c-GigabitEthernet1 ...
- Apache Hudi 负载类Payload使用案例剖析
在 Hudi 中可以根据业务场景为 Hudi 表配置负载类Payload,它用于在更新期间合并同一记录的两个版本.本文将深入了解有效负载类的用途以及可以使用的所有不同方式. 配置:hoodie.dat ...
- PYTHON编写程序练习-打印99乘法表
使用for循环嵌套的知识点编写 for i in range(1,10): #第一层循环,循环乘数 for j in range(1,i+1): #第二层循环,循环被乘数 print(f&qu ...
- Landsat数据在USGS中无法下载Surface Reflectance产品的解决方法
本文介绍在USGS官网下载Landsat遥感影像数据时,出现报错信息,无法下载地表反射率产品(Surface Reflectance)的解决办法. 最近,利用这篇文章批量下载Landsat遥感 ...
- linux上安装python3(yum方式)
可联通外网的linux系统终端上安装python3 1,建立yum仓库: https://mirrors.163.com/centos/7.9.2009/os/x86_64/ 2,使用yum下载安装对 ...
- mysql常用命令汇总
1.查询表占用空间语句:SELECT CONCAT(table_schema,'.',table_name) AS 'Table Name', table_rows AS 'Number of Row ...
- scrapy 爬取酷狗热门歌手音乐
目录 声明 Hello,酷狗! 创建一个Scrapy项目 spider模块 分析前端界面 注意 items模块 pipeline模块 处理音频文件自定义下载路径 自定义下载图片路径 异步存入到数据库 ...
- AI步枪
最近正在看利用深度学习进行图像处理的资料,神经网络的确是太枯燥了,看不下去了就刷会手机.这几天推荐给我的新闻都是漂亮国又发生校园枪击事件了,不知道推荐算法是怎么认定我对这个话题感兴趣的.这算是老生常谈 ...
- input type='number' 去除小箭头 clear arrow
input type='number' 去除小箭头 两种方法 方法一 For chrome, Safari, Edge, Opera : input::-webkit-outer-spin-butto ...
- TP3.2 I('post.') 获取到的参数特殊字符被自动转义
eg:原数据 :&这是一条测试数据 被转义后的数据:&nbmp; 这是一条测试数据 解决办法: $input = json_encode(I('post.'));$input = h ...