概述
一.基础概念
1.数字图像:每一个数字图像都是一个像素点矩阵,这个矩阵包含所有像素点的强度值
2.通道:把图像分解成一个或多个颜色成分
①单通道:一个像素点只需一个数值表示,只能表示灰度,0为黑色
②三通道:RGB模式,把图像分为红绿蓝三个通道,可以表示彩色,全0表示黑色
③四通道:在RGB基础上加上alpha通道,表示透明度,alpha=0表示全透明
3.深度:深度即位数(比特数)
①位深:一个像素点所占的总位数,也叫像素深度、图像深度等
* 位深 = 通道数 × 每个通道所占位数
②256色图:n位的像素点可以表示2^n种颜色,称2^n色图,n=8时为256色图
③8位RGB与8位图:前者的位数指每个通道所占的位数,后者指整个像素点共占的位数
* 8位RGB是一个24位图,也称为真彩
4.分辨率:单位英寸所含像素点的个数(长×宽)
二.载入标志flags:imread()或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通道的加载的图像
三.Mat的type属性
表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为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 |
这里U(unsigned integer)表示的是无符号整数,S(signed integer)是有符号整数,F(float)是浮点数,C1,C2,C3,C4则表示通道是1,2,3,4。
本文转载自:http://blog.csdn.net/trap94/article/details/50524419
最后
以上就是缓慢招牌为你收集整理的图像中的基本概念的全部内容,希望文章能够帮你解决图像中的基本概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复