【数字图像处理之(二)】图像的分类

在计算机中,按照颜色和灰度的多少可以将图像分为灰度图像、二值图像、索引图像和RGB图像四种基本类型。在计算机中,通常是以数组(或矩阵)的形式储存图像的。

灰度图像:

  • 灰度图像矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数的【uint8】,这就是人们经常提到的256灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。
  • 然而,在某些领域(例如医学成像),要求提供超出【uint8】的动态范围;会采用【uint16】和【int16】数据类型;
  • 针对计算灰度的操作(例如傅里叶变换),会使用 【double】
    和【single】类型;如果图像是【double】或【single】数据类型,灰度图像的值通常被归一化标定位【0-1】范围内,0代表黑色,1代表白色,0到1之间的小数表示不同的灰度等级。二值图像可以看成是灰度图像的一个特例。

(注意:图像的类型,和图像的数据类型是完全不同的概念,前者代表图像的本身,后者只是图像在计算机上的存储方式而已)

二值图像:

  • 一幅二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。
  • 在MATLAB中,二值图像具有非常特殊的意义,只有逻辑数据类型【logical】才被认为是二值图像,就算是只包含0和1的数据类的数组(例如【uint8】),在MATLAB中都不认为是二值图像。可以使用logical将其他类型的数组转换为二值图像:B
    = logical(A)

索引图像:

  • 索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。
  • 一般索引图像只能显示256种颜色(由数据矩阵X的取值范围决定),与灰度图像不同的是,灰度图像的颜色表的值是从0到255连续的值,所以灰度图像的数据我们即可以看成是实际的像素值,也可以看成是索引值。
  • 索引图的优点是存储所需容量小,且索引图像一般用于存放色彩要求比较简单的图像,如Windows中色彩构成比较简单的壁纸多采用索引图像存放,如果图像的色彩比较复杂,就要用到RGB真彩色图像。

RBG图像:

  • RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中;
  • 由于每一像素的颜色需由R、G、B三个分量来表示,一副大小为M*N的RGB图像需要3个M*N大小的矩阵表示,每一个矩阵代表一个颜色通道。RGB图像的数据类型一般为【uint】数据类型(也可以是【double】),通常用于表示和存放真彩色图像(有2^24种颜色),当然也可以存放灰度图像(如果3个通道的值都是一样的,则为灰度图像)。
  • 在MATLAB中用cat操作将3通道合成彩色图像:rab_image = cat(3, R, G, B);
  • 用下面这些命令可以提取出三个通道的图像:
    • R = rgb_image(:,:,1);
    • G = rgb_image(:,:,2);
    • B = rgb_image(:,:,3);

【数字图像处理之(二)】图像的分类

时间: 2024-11-09 14:59:23

【数字图像处理之(二)】图像的分类的相关文章

Win8 Metro(C#)数字图像处理--2.52图像K均值聚类

原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类 ?? [函数名称] ??图像KMeans聚类??????KMeansCluster(WriteableBitmap?src,int?k) /// <summary> /// KMeans Cluster process. /// </summary> /// <param name="src">The source image.</param> /// <pa

Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法

原文:Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法 ?? [函数名称] ??图像统计滤波???WriteableBitmap?StatisticalFilter(WriteableBitmap?src,double?T) /// <summary> /// Statistical filtering process. /// </summary> /// <param name="src">The source image.&

数字图像处理(二):图像去雾

1.主程序 clear all;clc close all kenlRatio = .01;%窗口大小比例 minAtomsLight = 240; %原始论文中的A最终是取原始像素中的某一个点的像素,我实际上是取的符合条件的所有点的平均值作为A的值. %如果是取一个点,则各通道的A值很有可能全部很接近255,这样的话会造成处理后的图像偏色和出现大量色斑. %原文作者说这个算法对天空部分不需特别处理,我实际发现该算法对有天空的图像的效果一般都不好.天空会出现明显的过渡区域. %作为解决方案,我增

数字图像处理(二) 灰度变换与空域滤波

一.引入 空间域方法:对像素操作的过程->对图像像素直接处理. 空间域处理可由该式定义: \(g(x,y)=T[f(x,y)]\) 其中,f(x,y)为原图像,g(x,y)为处理后的图像,T为定义在x,y的邻域(不一定是4/8/m邻域,可能是更大的范围,如3x3,5x5的mask,et al)内的一个操作(也叫做算子). 最小邻域的大小为1x1,在这种情况下,g(x,y)仅取决于对应的f(x,y)值,上式可变换为一个形如下式的灰度(级)变换函数/灰度映射函数: \(s=T(r)\) 其中,r和s

【数字图像处理之四】图像的放大缩小旋转

缩放放大: 修改红框里面的参数,2.0表示放大两倍,0.5表示缩小两倍. 旋转: 修改红框里面的参数,表示旋转多少度.逆时针. 旋转编写代码的时候可能会出现这样的情况: 因为旋转的时候,坐标的映射无法使坐标连续,所以中间会出现背景色的花纹.此时处理的方法使用均值滤波. 均值滤波的算子如下: 要用均值滤波处理,首先得把旋转后的图像放进一个数组里面: 所以新数组是(wImage*sinΘ+hImage*cosΘ) x (wImage*cosΘ + hImage*sinΘ) 然后新数组中要忽略四个直角

c语言数字图像处理(二):图片放大与缩小-双线性内插法

图像内插 假设一幅大小为500 * 500的图像扩大1.5倍到750 * 750,创建一个750 * 750 的网格,使其与原图像间隔相同,然后缩小至原图大小,在原图中寻找最接近的像素(或周围的像素)进行赋值,最后再将结果放大 最邻近内插法 寻找最近的像素赋值 双线性内插法 v(x,y) = ax + by + cxy + d 双线性内插法参数计算 已知Q11, Q12, Q21, Q22,要插值的点为P点,首先在x轴上,对R1,R2两个点进行插值 然后根据R1和R2对P点进行插值 化简得 对于

【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理具体解释

本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行解说.主要通过MFC单文档视图实现显示BMP图片点运算处理.包含图像灰度线性变换.灰度非线性变换.图像阈值化处理.图像均衡化处理等知识,并结合前一篇论文灰度直方图进行展示 .同一时候文章比較具体基础,希望该篇文章对你有所帮助,尤其是刚開始学习的人和学习图像处理的学生. [数字图像处理]一.MFC具体解释显示BMP格式图片 [数字图像处理]二.MFC单文档切割窗体显示图片 [数字图像处理]

【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解

本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片空间几何变换,包括图像平移.图形旋转.图像反转倒置镜像和图像缩放的知识.同时文章比较详细基础,没有采用GDI+获取矩阵,而是通过读取BMP图片信息头和矩阵像素实现变换,希望该篇文章对你有所帮助,尤其是初学者和学习图像处理的学生. [数字图像处理]一.MFC详解显示BMP格式图片 [数字图像处理]二.MFC单文档分割窗口显示图片 [数字图像处

【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图像增强处理,包括图像普通平滑.高斯平滑.不同算子的图像锐化知识.希望该篇文章对你有所帮助,尤其是初学者和学习图像处理的学生. [数字图像处理]一.MFC详解显示BMP格式图片 [数字图像处理]二.MFC单文档分割窗口显示图片 [数字图像处理]三.MFC实现图像灰度.采样和量化功能详解 [数字图像处理]四.MFC对话框绘制灰度直方图 [数字图像

【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解

本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP格式图片,并通过Bitmap进行灰度处理.图片采样和量化功能. 个人认为对初学者VC++6.0可能还是很值得学习的工具,所以采用它来讲解,而不是VS或C#.同时文章比较详细基础,希望该篇文章对你有所帮助~ [数字图像处理]一.MFC详解显示BMP格式图片 [数字图像处理]二.MFC单文档分割窗口显示图片 免费资源下载地址: http://dow