已处理好的数据存在矩阵中,用该矩阵成像有关问题
已处理好的数据存在矩阵中,用该矩阵成像问题
IplImage* img=cvCreateImage(cvSize(IMG_HEIGHT,IMG_WIDTH),IPL_DEPTH_32S,1);
LoadDataToImg(img,Mat_buffer);
cvNamedWindow("Example1",0);
cvShowImage("Example1",img);
简略代码如上所示!这里我有一个问题:已经处理好的数据放在一个201*201的矩阵中,就是Mat_buffer,然后矩阵中存的是float类型的数据,最大值为6.7516,最小值为-4.5689,创建Ipllmage* 变量时,第二个参数选IPL_DEPTH_32S(32位浮点型图像类型),是不是有问题啊?这是在网上看的:
常规的RGB通道的值的范围如下:
对于8位无符号精度图像(CV_8U Images),其范围是0~255
对于16位无符号精度图像(CV_16U Images),其范围是0~65535
对于32位单精度浮点型图像(CV_32F Images),其范围是0~1
是不是我得到的数据范围不对-4.5689~6.7516,所以成像时会出现问题呢?如果不用这种图像类型,比如说用16位有符号整形,那负的数据怎么解释?(像素灰度值有负的?)希望大神解答支招!
------解决思路----------------------
float是16位
double是32位
IplImage* img=cvCreateImage(cvSize(IMG_HEIGHT,IMG_WIDTH),IPL_DEPTH_32S,1);
LoadDataToImg(img,Mat_buffer);
cvNamedWindow("Example1",0);
cvShowImage("Example1",img);
简略代码如上所示!这里我有一个问题:已经处理好的数据放在一个201*201的矩阵中,就是Mat_buffer,然后矩阵中存的是float类型的数据,最大值为6.7516,最小值为-4.5689,创建Ipllmage* 变量时,第二个参数选IPL_DEPTH_32S(32位浮点型图像类型),是不是有问题啊?这是在网上看的:
常规的RGB通道的值的范围如下:
对于8位无符号精度图像(CV_8U Images),其范围是0~255
对于16位无符号精度图像(CV_16U Images),其范围是0~65535
对于32位单精度浮点型图像(CV_32F Images),其范围是0~1
是不是我得到的数据范围不对-4.5689~6.7516,所以成像时会出现问题呢?如果不用这种图像类型,比如说用16位有符号整形,那负的数据怎么解释?(像素灰度值有负的?)希望大神解答支招!
------解决思路----------------------
float是16位
double是32位