针对opencv的提问!!!浮点型图像像素值范围是多少?

发布网友

我来回答

3个回答

热心网友

书上写0-1没错,因为如果你要用imshow查看图像的话,浮点图像的数值范围必须是0-1才有意义,才能正常查看图像,当然如果你的浮点图像是作为中间运算结果,那么取什么值是都可以的,你只要明确一点,作为浮点图像,只有在范围0-1上才是真正意义上的图像,才能用imshow查看,否则你的浮点图像不能正常显示,但是可以用作中间计算结果,希望我的回答对你有用。

热心网友

这个问题很简单啊,首先data 是opencv数据存放的区域,是不可见的。data[i*step+j*channels+k] = 111;这句话的意思就是对某个点赋值啊,一点问题都没有。不知道你为什么说是[0-1]的范围,i就是第几行,j是什么通道(opencv是BGR的通道哦,和常规的RGB相反的),k是这行第几个元素。这个元素可以赋值32位的浮点,当然赋值111也是可以的喽。

书上写着是[0-1]是指的什么,原来的图像时2值化的吗?有些时候为了计算光流啊什么的,需要再做一副32F的图像的。

热心网友

IplImage *img=cvLoadImage("c://fruitfs.bmp",1);
CvScalar s;
for(int i=0;i<img->height;i++)...{
for(int j=0;j<img->width;j++)...{
s=cvGet2D(img,i,j); // get the (i,j) pixel value
printf("B=%f, G=%f, R=%f ",s.val[0],s.val[1],s.val[2]);
s.val[0]=111;
s.val[1]=111;
s.val[2]=111;
cvSet2D(img,i,j,s);//set the (i,j) pixel value
}
}
cvNamedWindow("Image",1);
cvShowImage("Image",img);
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &img ); //释放图像
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com