图像中的基本概念

一.基础概念

1.数字图像:每一个数字图像都是一个像素点矩阵,这个矩阵包含所有像素点的强度值

 

2.通道:把图像分解成一个或多个颜色成分

  ①单通道:一个像素点只需一个数值表示,只能表示灰度,0为黑色

  ②三通道:RGB模式,把图像分为红绿蓝三个通道,可以表示彩色,全0表示黑色

  ③四通道:在RGB基础上加上alpha通道,表示透明度,alpha=0表示全透明

 

3.深度:深度即位数(比特数)

  ①位深:一个像素点所占的总位数,也叫像素深度、图像深度等

    * 位深 通道数 × 每个通道所占位数 

  ②256色图:n位的像素点可以表示2^n种颜色,称2^n色图,n=8时为256色图

  ③8RGB8位图:前者的位数指每个通道所占的位数,后者指整个像素点共占的位数

* 8RGB是一个24位图,也称为真彩

 

4.分辨率:单位英寸所含像素点的个数(长×宽)

 

二.载入标志flagsimread()cvLoadImage()的第二个参数

1.定义:flags是用枚举定义的,如下所示:

  enum  

{  

   CV_LOAD_IMAGE_UNCHANGED  =-1,  

   CV_LOAD_IMAGE_GRAYSCALE    =0,  

   CV_LOAD_IMAGE_COLOR        =1,  

   CV_LOAD_IMAGE_ANYDEPTH    =2,  

   CV_LOAD_IMAGE_ANYCOLOR    =4  

};  

 

  ①CV_LOAD_IMAGE_GRAYSCALE=0将图像转化为单通道(8位灰度)

  ②CV_LOAD_IMAGE_COLOR=1将图像转化为三通道(彩色),这是默认值

  ③CV_LOAD_IMAGE_ANYCOLOR=4将保持图像原来的通道

  ④CV_LOAD_IMAGE_ANYDEPTH=2将保持图像原来的深度

  ⑤V_LOAD_IMAGE_UNCHANGED=-1已被废置。

 

2.混合使用:以上类型还可以通过加位运算符|来进行混合使用,如CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR表示通道数和深度都和原图相同;CV_LOAD_IMAGE_COLOR|CV_LOAD_IMAGE_ANYDEPTH表示通道数为3,深度与原图像相同

 

3.冲突:如果几个标志混合使用产生了冲突,将采用对应的数字值较小的模式,如CV_LOAD_IMAGE_COLOR | CV_LOAD_IMAGE_ANYCOLOR 会将图像转化为三通道

 

4.使用int型表示:flags可以用int型表示,flags =0返回单通道灰度图像,flags>0返回三通道彩图,flags<0返回包含Alpha通道的加载的图像

 

三.Mattype属性

表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为CV_(位数)+(数据类型)+(通道数)。具体的有以下值:

CV_8UC1

CV_8UC2

CV_8UC3

CV_8UC4

CV_8SC1

CV_8SC2

CV_8SC3

CV_8SC4

CV_16UC1

CV_16UC2

CV_16UC3

CV_16UC4

CV_16SC1

CV_16SC2

CV_16SC3

CV_16SC4

CV_32SC1

CV_32SC2

CV_32SC3

CV_32SC4

CV_32FC1

CV_32FC2

CV_32FC3

CV_32FC4

CV_64FC1

CV_64FC2

CV_64FC3

CV_64FC4

这里Uunsigned integer)表示的是无符号整数,Ssigned integer)是有符号整数,Ffloat)是浮点数,C1C2C3C4则表示通道是1,2,3,4

本文转载自:http://blog.csdn.net/trap94/article/details/50524419

猜你喜欢

转载自blog.csdn.net/Linux_bin/article/details/79495873
今日推荐