并不是所有格式的Mat型数据都能被使用保存为图片,目前OpenCV主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即CV_16U),所以其他一些数据类型是不支持的,比如说float型等。
convertTo()函数负责转换数据类型不同的Mat,即可以将类似float型的Mat转换到imwrite()函数能够接受的类型;
cvtColor()函数是负责转换不同通道的Mat,因为该函数的第四个参数就可以设置目的Mat数据的通道数(只是我们一般没有用到它,一般情况下这个函数是用来进行色彩空间转换的)。
也可以不用imwrite()函数来存图片数据,可以直接用通用的XML IO接口函数将数据存在XML或者YXML中。
Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系。
人眼对外界光源的感光值与输入光强不是呈线性关系,而是呈指数型关系。在低照度下,人眼更容易分辨出亮度的变化,随着照度的增加,人眼不易分辨出亮度的变化。而摄像机感光与输入光强呈线性关系。为方便人眼辨识图像,需要将摄像机采集的图像进行gamma校正。
normalize:该函数分为范围归一化与数据值归一化
void cv::normalize(InputArray src,InputArray dst,double alpha=1,double beta=0,int norm_type=NORM_L2,int dtype=-1,InputArry mark=noArray())
src:输入数组
dst: 输出数组,数组的大小和原数组一致
alpha: 1,用来规范值;2。规范范围,并且是下限
beta: 只用来规范范围并且是上限(不等于0)
norm_type: 归一化选择的数学公式类型
dtype: 归一化选择的数学模型
dtype:当为负,输出在大小深度通道数都等于输入,当为正,输出只在深度与输入不同,不同的地方有dtype决定
mark:掩码。选择感兴趣区域,选定后只能对该区域进行操作。
目标检测(Moving-Objectives Detecting,MOD)是指将图像序列中发生变化的区域从背景中分割出来。MOD的基本任务是判断图像序列中是否存在运动目标,并确定运动目标的位置。MOD处于整个视频监视系统的最低层,是各种后续高级应用如目标跟踪、目标分类、目标行为识别和理解等的基础。因此MOD成为视频监控系统研究中最重要的课题。
阴影主要是因为场景中的对象被光源部分或全部遮挡而产生的。阴影通常可分为投射阴影(Cast Shadow)和自身阴影(Self Shadow)两类。自身阴影是由于物体本身没有被光源直接照射到而形成的,属于目标本身的一部分 ,这部分阴影是不用从检测结果中去除的。投射阴影是由于物体阻挡光线后在背景上形成的部分,这就是要从结果中去掉的阴影。